列挙型の型はintでなければならないため、以下は不可能だとわかっています。
enum GroupTypes
{
TheGroup = "OEM",
TheOtherGroup = "CMB"
}
データベースから、理解できないコード ( および ) を含むフィールドを取得しますOEM
。CMB
このフィールドを または他のわかりやすいものにしたいと思いますenum
。目標が読みやすさである場合、解決策は簡潔である必要があるためです。
他にどんな選択肢がありますか?
ベストアンサー1
クラスでは、プロパティの方が列挙型のように見えるので、メソッドではなくプロパティを使用するのが好きです。
以下は Logger の例です。
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 override string ToString()
{
return Value;
}
}
型安全な文字列値をパラメータとして渡します。
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);