【发布时间】:2011-08-06 06:39:07
【问题描述】:
我需要我的枚举来返回一个特定的字符串,但我不知道如何让它返回一个带有中断的字符串,而没有进行转换的方法。是否可以在没有辅助方法的情况下使LicenseTypes.DISCOUNT_EARLY_ADOPTER 返回DISCOUNT EARLY-ADOPTER?
// All license types
public enum LicenseTypes
{
DISCOUNT,
DISCOUNT_EARLY_ADOPTER,
COMMERCIAL,
COMMERCIAL_EARLY_ADOPTER
}
// Convert enum to correct string
public static string LicenseTypeToString(LicenseTypes Enum)
{
if (Enum == LicenseTypes.COMMERCIAL)
return "COMMERCIAL";
else if (Enum == LicenseTypes.COMMERCIAL_EARLY_ADOPTER)
return "COMMERCIAL EARLY-ADOPTER";
else if (Enum == LicenseTypes.DISCOUNT)
return "DISCOUNT";
else if (Enum == LicenseTypes.DISCOUNT_EARLY_ADOPTER)
return "DISCOUNT EARLY-ADOPTER";
else
return "ERROR";
}
【问题讨论】:
-
带断点的字符串是什么意思?
-
@Bolt,我的意思是它返回字符串“DISCOUNT EARLY-ADOPTER”,其中有空格,枚举不喜欢空格,所以我必须强调它们
-
你见过post 讨论使用 System.ComponentModel.DescriptionAttribute 来创建更好的带空格的枚举描述吗?
-
尽管您可能讨厌它,但实际上我认为您的简单辅助方法方法并没有什么特别的问题。我只建议使用
switch语句而不是一堆if/else块,因为编译器可以更好地优化它。