c# - 如何反射(reflect)作为泛型提供的类型的名称?

标签 c# .net vb.net generics reflection

如何反射(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).NameGetType(T).Name , 分别。

关于c# - 如何反射(reflect)作为泛型提供的类型的名称?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3161101/

相关文章:

c# - .NET Core 2.2 下配置中 AddJsonFile 选项的默认值是什么?

c# - 无法为 ExpandoObject 赋值

c# - 使用 Exchange Web 服务托管 API 检测电子邮件移动?

c# - 自动化复杂的重构任务

c# - 在 Visual Studio 中使用参数 Access 查询

sql-server - 文本框中显示的数据库十进制值

vb.net - 在VB.NET中将 bool 值转换为整数

c# - 如何在 C# 桌面应用程序中避免没有存储过程的 SQL 注入(inject)

C# 指针和值类型变量的重定位

c# - 如何将 bool 数组转换为 char 变量?