我想知道为什么我们不能将"char"作为底层枚举类型.因为我们有byte,sbyte,int,uint,long,ulong,short,ushort作为底层枚举类型.二,枚举的默认底层类型是什么?
kad*_*d81 77
我知道这是一个较旧的问题,但这些信息对我有帮助:
在C#.NET 4.0中使用char作为枚举的值类型似乎没有问题(可能甚至是3.5,但我没有对此进行测试).这就是我所做的,它完全有效:
public enum PayCode {
NotPaid = 'N',
Paid = 'P'
}
Run Code Online (Sandbox Code Playgroud)
将Enum转换为char:
PayCode enumPC = PayCode.NotPaid;
char charPC = (char)enumPC; // charPC == 'N'
Run Code Online (Sandbox Code Playgroud)
将char转换为Enum:
char charPC = 'P';
if (Enum.IsDefined(typeof(PayCode), (int)charPC)) { // check if charPC is a valid value
PayCode enumPC = (PayCode)charPC; // enumPC == PayCode.Paid
}
Run Code Online (Sandbox Code Playgroud)
像魅力一样,就像你对char类型的期望一样!
Emi*_*mir 13
这是我正在使用的解决方法
enum MyEnum
{
AA = 'A',
BB = 'B',
CC = 'C'
};
static void Main(string[] args)
{
MyEnum e = MyEnum.AA;
char value = (char)e.GetHashCode(); //value = 'A'
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
38192 次 |
最近记录: |