我知道以下是不可能的,因为枚举的类型必须是 int
enum GroupTypes
{
TheGroup = "OEM",
TheOtherGroup = "CMB"
}
从我的数据库中,我得到一个包含不完整代码的字段(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);
关于c# - 在 C# 中将枚举与字符串相关联,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/630803/