1

为什么以下任何一个都不能编译:

NameOf(value.GetType())
NameOf(GetType(value))

这个表达式没有名字。

如何获取传递的值类型的字符串名称?ToString()可能超载,所以不能使用。

4

3 回答 3

3

您不能NameOf在这种情况下使用,因为这个新运算符从成员本身获取成员的名称。

GetType不返回成员,而是返回类、结构、接口或枚举的类型元数据。

因此,您将能够获取获取Type.Name属性值的整个类型名称:value.GetType().Name

于 2016-05-28T07:17:39.033 回答
1

您可以使用value.GetType().Name以字符串形式获取类型的名称

您的代码无法编译,因为根据文档GetType()返回一个类型的对象System.Type,而不是一个表达式,这是必需的。

于 2016-05-28T07:09:08.417 回答
1

VB .Net 有一个名为TypeName的内置函数。您可以将对象直接传递给函数,而不是在获取该类型名称之前获取该对象类型TypeName

于 2016-05-28T07:15:50.577 回答