当前位置 : 主页 > 编程语言 > c语言 >

.NET字符串值的符号常量枚举

来源:互联网 收集:自由互联 发布时间:2021-06-24
我有一个相当无意义的代码列表,我正在使用VB.NET Windows应用程序处理.对于我正在编写处理这些代码的业务逻辑,我想使用有意义的常量(如ServiceNotCovered或MemberNotEligible)而不是原始代码(如
我有一个相当无意义的代码列表,我正在使用VB.NET Windows应用程序处理.对于我正在编写处理这些代码的业务逻辑,我想使用有意义的常量(如ServiceNotCovered或MemberNotEligible)而不是原始代码(如“SNCV”和“MNEL”).

据我所知,Enums只能映射到数值,而不能映射到字符串.因此,我能够提出的最好的是一个静态类,它将常量公开为静态只读字符串字段,这些字段在内部设置为等于代码值,如下所示.

Public Class MyClass

    private _reasonCode as String()
    Public Property ReasonCode() As String
        'Getter and Setter...
    End Property

    Public Class ReasonCodeEnum
        Private Sub New()
        End Sub
        Public Shared ReadOnly ServiceNotCovered As String = "SNCV"
        Public Shared ReadOnly MemberNotEligible As String = "MNEL"
        'And so forth...
    End Class

End Class

'Calling method
Public Sub ProcessInput()
    Dim obj As New MyClass()
    Select Case obj.ReasonCode
        Case MyClass.ReasonCodeEnum.ServiceNotCovered
            'Do one thing
        Case MyClass.ReasonCodeEnum.MemberNotEligible
            'Do something different
        'Other enum value cases and default
    End Select
End Sub

在上面的例子中,如果我可以将MyClass.ReasonCode定义为具有类型ReasonCodeEnum,那将是很好的,但是我必须使ReasonCodeEnum成为非静态类并给它一种设置和返回值的方法.

我想知道的是,是否有一种方法可以使用内置的Enum功能来完成我正在做的事情,或者如果没有,是否有任何标准设计模式适用于此类事情.

您可以使用我在此处发布的代码在VB.Net中模拟任何类型的自定义枚举:
Getting static field values of a type using reflection
网友评论