gpt4 book ai didi

c# - 为什么我们不能有 "char"枚举类型

转载 作者:IT王子 更新时间:2023-10-29 03:57:09 27 4
gpt4 key购买 nike

我想知道为什么我们不能将“char”作为基础枚举类型。因为我们有 byte,sbyte,int,uint,long,ulong,short,ushort 作为基础枚举类型。其次,枚举的默认底层类型是什么?

最佳答案

我知道这是一个较老的问题,但这些信息会对我有所帮助:

在 C# .NET 4.0 中使用 char 作为枚举的值类型似乎没有问题(甚至可能是 3.5,但我还没有测试过)。这是我所做的,它完全有效:

public enum PayCode {
NotPaid = 'N',
Paid = 'P'
}

将枚举转换为字符:

PayCode enumPC = PayCode.NotPaid;
char charPC = (char)enumPC; // charPC == 'N'

将字符转换为枚举:

char charPC = 'P';
if (Enum.IsDefined(typeof(PayCode), (int)charPC)) { // check if charPC is a valid value
PayCode enumPC = (PayCode)charPC; // enumPC == PayCode.Paid
}

像魅力一样工作,正如您对 char 类型所期望的那样!

关于c# - 为什么我们不能有 "char"枚举类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/572963/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com