枚举可以返回字符串而不是整数吗?
我希望我的枚举返回字符串值。 不是Enum Description,它们必须返回一个字符串值,而不是int。 下面的代码示例正是我的想法,但显然无法编译。
public enum TransactionType { CreditCard = "C", DebitCard = "D", CreditCardAuthenticationWithAuthorization = "CA", DebitCardAuthenticationWithAuthorization = "DA" }
有任何想法吗?
你不能,你可以做的是创建一个静态类,它“行为”有点像带有字符串值的枚举:
public static class TransactionType { public const string CreditCard = "C"; ... }
您可以使用相同的方式访问它们:
string creditCardValue = TransactionType.CreditCard;
另一种选择是使用System.ComponentModel
命名空间中的DescriptionAttribute ,但是你的枚举仍然会有底层数值,所以也许这并不完全是你需要的。
例:
public enum TransactionType { [Description("C")] CreditCard, ... }
不,没有办法。 您可以选择int,long,byte,short – 通常是数字类型。
你可以做一些“作弊”,仅用于char
值(因为char
是implicity铸造到int):
public enum MyEnum { Value = 'a' }