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