枚举成员列表以数字开头



我构建的枚举遇到了问题。

  Public Enum enumGraphType
    Table = 0
    Chart = 1
    Gauge = 2
    3DChart = 3
  End Enum

我收到 3DChart 的错误:语句无法出现在枚举正文中。假设枚举结束。
我知道我可以使用D3Chart这个名字,但这不是我想要的。
我也知道我可以添加一个属性(如描述)并将我的描述作为 3DChart,但这不是我想要的。
我也试过[3DChart],但它不起作用。
有什么方法可以解决这个问题并保留名称吗?

谢谢你的时间

枚举成员不能以数字开头,因此这是无效的:

3DChart = 3

您可以改为在前面加上下划线

_3DChart = 3

对于它的价值,您可以添加描述:

Public Enum EnumGraphType
    <ComponentModel.Description("Table")>
        Table = 0
    <ComponentModel.Description("Chart")>
        Chart = 1
    <ComponentModel.Description("Gauge")>
        Gauge = 2
    <ComponentModel.Description("3DChart")>
        _3DChart = 3
End Enum

下面是一个返回它的枚举扩展:

Public Module EnumExtensions
    <Runtime.CompilerServices.Extension()>
    Public Function GetDescription(ByVal EnumConstant As [Enum]) As String
        Dim fi As Reflection.FieldInfo = EnumConstant.GetType().GetField(EnumConstant.ToString())
        Dim attr() As ComponentModel.DescriptionAttribute =
            DirectCast( _
                fi.GetCustomAttributes(GetType(ComponentModel.DescriptionAttribute), False),  _
                ComponentModel.DescriptionAttribute() _
            )
        If attr.Length > 0 Then
            Return attr(0).Description
        Else
            Return EnumConstant.ToString()
        End If
    End Function
End Module

现在你以这种方式得到描述:

Dim chartType = EnumGraphType._3DChart
Dim chartTypeDesc = chartType.GetDescription() ' 3DChart

最新更新