将NameOf与变量一起使用

时间:2016-05-28 07:03:38

标签: .net vb.net nameof

为什么不进行以下任何编译:

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

此表达式没有名称。

  

如何获取传递的值的类型的字符串名称? ToString()可能会超载,因此无法使用。

3 个答案:

答案 0 :(得分:2)

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

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

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

答案 1 :(得分:1)

您可以使用value.GetType().Name将类型名称作为字符串

您的代码无法编译,因为GetType()返回类型为System.Type的对象,而不是每个documentation所需的表达式。

答案 2 :(得分:1)

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