【发布时间】:2019-10-17 21:28:34
【问题描述】:
我需要用变量定义枚举属性。 这将正常工作:
Public Enum CommandsC_e
<Title("Cmd1")>
CommandC1
<Title("Cmd2")>
CommandC2
End Enum
但是这段代码给了我一个“需要常量表达式”。错误:
Dim Title as string = "Test"
Public Enum CommandsC_e
<Title(Title)>
CommandC1
<Title("Cmd2")>
CommandC2
End Enum
我在某处读到枚举属性需要在编译时知道。 有解决方法吗?
【问题讨论】:
-
这些属性是在编译时评估的,而不是在运行时评估的。变量在编译时没有值,因此不能在该上下文中使用。你想做的事情是不可能的。如果您将
Title声明为常量而不是变量,那么您将能够使用它,因为该值在编译时是已知的。 -
这太糟糕了,据我所知,在运行时更改属性是不可能的。我想我会为每个变量值做一个枚举。感谢您的帮助
-
Private Const enuTitle As String = "Test"=>Public Enum CommandsC_e <Description(enuTitle)> (...) End Enum