我知道以下是不可能的,因为枚举的类型必须是 int
enum GroupTypes { TheGroup = "OEM", TheOtherGroup = "CMB" }
从我的数据库中,我得到一个包含不全面代码(theOEM和CMBs)的字段。我想把这个领域变成一个enum或其他可以理解的东西。因为如果目标是可读性,那么解决方案应该是简洁的。
OEM
CMB
enum
我还有什么其他选择?
我喜欢 在类中使用属性 而不是方法,因为它们看起来更像枚举。
这是记录器的示例:
public class LogCategory { private LogCategory(string value) { Value = value; } public string Value { get; private set; } public static LogCategory Trace { get { return new LogCategory("Trace"); } } public static LogCategory Debug { get { return new LogCategory("Debug"); } } public static LogCategory Info { get { return new LogCategory("Info"); } } public static LogCategory Warning { get { return new LogCategory("Warning"); } } public static LogCategory Error { get { return new LogCategory("Error"); } } }
传入 类型安全的字符串值 作为参数:
public static void Write(string message, LogCategory logCategory) { var log = new LogEntry { Message = message }; Logger.Write(log, logCategory.Value); }
用法:
Logger.Write("This is almost like an enum.", LogCategory.Info);