[解決済み】C#で列挙型と文字列を関連付ける
2022-04-15 11:41:55
質問
Enumerationの型はintでなければならないので、次のようなことができないことは分かっています。
enum GroupTypes
{
TheGroup = "OEM",
TheOtherGroup = "CMB"
}
私のデータベースから、理解しがたいコードを持つフィールド (
OEM
と
CMB
s). このフィールドを
enum
などと理解しやすいように 読みやすさをターゲットとするならば、解決策は簡潔であるべきだからです。
他にどんな選択肢があるのでしょうか?
解決方法は?
を使いたいのですが プロパティをクラスで使用します。 メソッドの代わりに、より列挙型に見えるからです。
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 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);
関連
-
[解決済み] エンティティタイプ ApplicationUser は、現在のコンテキストのモデルの一部ではありません。
-
[解決済み】C#で四捨五入する方法
-
[解決済み】MetadataException: 指定されたメタデータ・リソースをロードできない
-
[解決済み】Linq 構文 - 複数列の選択
-
[解決済み] 関数を終了するには?
-
[解決済み] C#で文字列のエンコーディングを手動で指定せずに、一貫性のあるバイト表現を得るには?
-
[解決済み] ランダムな英数字の文字列を生成するにはどうすればよいですか?
-
[解決済み] LINQで.Firstと.FirstOrDefaultを使用するタイミングは?
-
[解決済み] 戻り値のないFuncデリゲート
-
[解決済み] Visual Studioのコンパイルエラー "mismatch between processor architecture "を修正するにはどうしたらいいですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】ここで「要求URIに一致するHTTPリソースが見つかりませんでした」となるのはなぜですか?
-
[解決済み] [Solved] 不正な文字列値: '\xEFxBFxBD' for column
-
[解決済み】Visual studio 2019がデバッグ時にフリーズする件
-
[解決済み】Visual Studio: 操作を完了できませんでした。パラメータが正しくありません
-
[解決済み】ファイルへの読み書きの際に共有違反のIOExceptionが発生する C#
-
[解決済み】WSACancelBlockingCallの例外について
-
[解決済み】プロセスが実行されているかどうかを知るには?
-
[解決済み] 列挙型を文字列に変換する
-
[解決済み] ユーザーフレンドリーな文字列を持つEnum ToString
-
[解決済み] 列挙型にフレンドリーな名前を付けることはできますか?重複