首页 > 解决方案 > 枚举属性中的变量:需要常量表达式

问题描述

我需要用变量定义枚举属性。这将正常工作:

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

我在某处读到枚举属性需要在编译时知道。有解决方法吗?

标签: vb.netenums

解决方案


我设法弄清楚如何使这项工作。您需要将变量包装到一个模块中,有一个带有输入框的示例,其中填充了一个枚举属性:

Module Vars

    Property desc As String = InputBox("test", "test", "test")   End Module

End Module

Public Enum CommandsC_e

    <Title(GetType(Vars), NameOf(Vars.desc))>   
    CommandC2

End Enum

推荐阅读