我们有一些遗留的字符编码,我们想要在新系统中将它们存储为数字。为了增加程序员在迁移过程中的代码阅读性和理解性,我想做出如下的枚举类型...
使用这种设置,代码将变得可读(想象一下
Public Enum Status As Short
Open = AscW("O")
Closed = AscW("C")
Pending = AscW("P")
EnRoute = AscW("E")
End Enum
使用这种设置,代码将变得可读(想象一下
If Record.Status = Status.Open
),但是值将存储在数据库中作为小数字,因此它将是高效的。然而...我是VB.NET的人,但每个人都想在C#中编码,所以我需要这种结构在C#中。
通过谷歌搜索,我发现AscW
的.NET通用等效方式是Convert.ToInt32("C")
。当我尝试在枚举中使用该语句时,我会得到编译器错误“需要常量表达式”。
我如何在C#中实现这一点?有更好的方法吗?
AscW
声明在Microsoft.VisualBasic
中并不是很重要,关键是编译器已经内置了对AscW
的理解,而且它并不会在运行时调用任何方法。编译器只是在编译时将表达式替换为其整数值。” - Mehrdad AfshariAscW
函数比对字面值更容易插入。:D - Josh StodolaEnumMember = "A"c
"无法工作。这并不是实现容易程度的问题。 - Mehrdad Afshari