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