如何反射(reflect)作为泛型参数提供的类型的名称?我真的很想知道这是如何在 C# 和 VB.NET 中完成的。请参阅以下示例代码和预期响应。
在 C# 中:
public void Test<T>()
{
Console.WriteLine("The supplied type is {0}",???)
}
在 VB.NET 中
Public Sub Test(Of T)()
Console.WriteLine("The supplied type is {0}",???)
End Sub
正在执行 Test<String>()
或 Test(Of String)()
应该产生:
The supplied type is String
最佳答案
C#(typeof 运算符):
public void Test<T>()
{
Console.WriteLine("The supplied type is {0}", typeof(T));
}
VB.NET(GetType 运算符):
Public Sub Test(Of T)()
Console.WriteLine("The supplied type is {0}", GetType(T))
End Sub
C# 的 typeof(T)
和 VB.NET 的 GetType(T)
返回一个 System.Type
对象,该对象具有用于检索的属性和方法有关特定 Type
的信息。默认情况下,System.Type
的 .ToString()
方法将返回 Type 的完全限定名称。要仅返回类型的 Name
,请在 C# 或 VB.NET 中调用 typeof(T).Name
或 GetType(T).Name
, 分别。
关于c# - 如何反射(reflect)作为泛型提供的类型的名称?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3161101/