枚举可以返回字符串而不是整数吗?

Hak*_*gan 4 c# enums c#-4.0

我希望我的枚举返回字符串值.不是Enum Description,它们必须返回一个字符串值,而不是int.下面的代码示例正是我的想法,但显然无法编译.

public enum TransactionType
{
    CreditCard = "C",
    DebitCard = "D",
    CreditCardAuthenticationWithAuthorization = "CA",
    DebitCardAuthenticationWithAuthorization = "DA"
}
Run Code Online (Sandbox Code Playgroud)

有任何想法吗?

Ale*_*rck 8

你不能,你可以做的是创建一个静态类,它"行为"有点像带有字符串值的枚举:

public static class TransactionType
{
   public const string CreditCard = "C";
   ...
}
Run Code Online (Sandbox Code Playgroud)

您可以使用相同的方式访问它们:

string creditCardValue = TransactionType.CreditCard;
Run Code Online (Sandbox Code Playgroud)

另一种选择是与工作DescriptionAttributeSystem.ComponentModel命名空间,但是那么你的枚举仍然有潜在的数值,所以也许这不完全,你需要什么.

例:

public enum TransactionType
{
   [Description("C")]
   CreditCard,
   ...
}
Run Code Online (Sandbox Code Playgroud)