要获取枚举值的名称,MSDN表示要使用:
[Enum].GetName(GetType(MyEnumTypeName), MyEnumValue)
'for e.g. if I have an enum for colours of the rainbow, then the following
[Enum].GetName(GetType(RainbowColours), 0)
'may return "Red"
首先,这里的[Enum]
是什么?这是我第一次遇到这个VB中使用的方括号。我可以将其更改为:
[MyEnumTypeName].GetName(GetType(MyEnumTypeName), MyEnumValue)
其次,我已将枚举的基础类型指定为Byte
,但VS不允许我为此声明的目的直接指定此
[Enum].GetName(Byte, MyEnumValue)
我是否可以使用GetName
以便我不需要使用GetType
?
这样的组合可能允许我使用:
[MyEnumTypeName].GetName(MyEnumType, MyEnumValue)
答案 0 :(得分:2)
如上所述,变量名称周围的方括号只允许您为该对象的变量名使用关键字。在您的情况下,它们不是必需的。所以,继续......
Enum.GetName方法的文档: Enum.GetName Method
Public Shared Function GetName ( _
enumType As Type, _
value As Object _
) As String
你不能这样做:
MyEnumTypeName.GetName(MyEnumType, MyEnumValue)
不声明名为Type
的{{1}}类型的变量。您需要类型为MyEnumType
的对象来填充第一个参数。如果你要传递你的枚举的名字,它不会完成同样的事情。但是,您可以执行以下操作:
Type
如果您要将Dim MyEnumType As Type = GetType(MyEnumTypeName)
MyEnumTypeName.GetName(MyEnumType, MyEnumValue)
声明为类级变量,这样您只需要设置一次,那么这至少可以解决您在上面的注释中提出的问题,以阻止程序执行& #34;比他们需要更多的工作"。