.NET中如何定义字符串值的符号常量枚举?

2026-05-08 12:073阅读0评论SEO问题
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计397个文字,预计阅读时间需要2分钟。

.NET中如何定义字符串值的符号常量枚举?

我有一个看似无意义的代码序列,我正在使用VB.NET Windows应用程序程序处理。对于我正在编写的处理这些代码的业务逻辑,我想使用有意义的常量(如ServiceNotCovered或MemberNotEligible)而不是原始代码(如')。

我有一个相当无意义的代码列表,我正在使用VB.NET Windows应用程序处理.对于我正在编写处理这些代码的业务逻辑,我想使用有意义的常量(如ServiceNotCovered或MemberNotEligible)而不是原始代码(如“SNCV”和“MNEL”).

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

.NET中如何定义字符串值的符号常量枚举?

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

本文共计397个文字,预计阅读时间需要2分钟。

.NET中如何定义字符串值的符号常量枚举?

我有一个看似无意义的代码序列,我正在使用VB.NET Windows应用程序程序处理。对于我正在编写的处理这些代码的业务逻辑,我想使用有意义的常量(如ServiceNotCovered或MemberNotEligible)而不是原始代码(如')。

我有一个相当无意义的代码列表,我正在使用VB.NET Windows应用程序处理.对于我正在编写处理这些代码的业务逻辑,我想使用有意义的常量(如ServiceNotCovered或MemberNotEligible)而不是原始代码(如“SNCV”和“MNEL”).

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

.NET中如何定义字符串值的符号常量枚举?

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