为什么以下任何一个都不能编译:
NameOf(value.GetType())
NameOf(GetType(value))
这个表达式没有名字。
如何获取传递的值类型的字符串名称?ToString()
可能超载,所以不能使用。
您不能NameOf
在这种情况下使用,因为这个新运算符从成员本身获取成员的名称。
GetType
不返回成员,而是返回类、结构、接口或枚举的类型元数据。
因此,您将能够获取获取Type.Name
属性值的整个类型名称:value.GetType().Name
您可以使用value.GetType().Name
以字符串形式获取类型的名称
您的代码无法编译,因为根据文档GetType()
返回一个类型的对象System.Type
,而不是一个表达式,这是必需的。
VB .Net 有一个名为TypeName的内置函数。您可以将对象直接传递给函数,而不是在获取该类型名称之前获取该对象类型TypeName
: