ホームページ > バックエンド開発 > C++ > C# で理解できないコードを、読み取り可能な Enum のような構造で表現するにはどうすればよいですか?

C# で理解できないコードを、読み取り可能な Enum のような構造で表現するにはどうすればよいですか?

Susan Sarandon
リリース: 2025-01-13 18:28:45
オリジナル
421 人が閲覧しました

How Can I Represent Incomprehensible Codes in C# with Readable Enum-Like Structures?

読み取り可能な enum のような構造を使用して、理解しにくいコードを C# で関連付けます

C# 列挙型の制限は、基になる型が整数である必要があることです。これにより、理解しにくいコードを表す列挙型の作成が妨げられる可能性があります。この問題を解決するには、いくつかの代替案が考えられます。

1 つのテクニックは、クラスでプロパティを使用することです。このアプローチでは、文字列を値として使用する柔軟性を維持しながら、より enum に似た構文が提供されます。たとえば、Logger クラスはログ カテゴリを表すプロパティを定義できます。

<code class="language-csharp">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; }
}</code>
ログイン後にコピー

もう 1 つのオプションは、タイプセーフな文字列値をパラメータとしてメソッドに渡すことです。このアプローチにより、特定の文字列値を受け入れる厳密に型指定されたメソッドを作成できます。 Logger クラスのこのようなメソッドの例:

<code class="language-csharp">public static void Write(string message, LogCategory logCategory)
{
    var log = new LogEntry { Message = message };
    Logger.Write(log, logCategory.Value);
}</code>
ログイン後にコピー

使用方法:

<code class="language-csharp">Logger.Write("这几乎就像一个枚举。", LogCategory.Info);</code>
ログイン後にコピー

どちらの手法も、理解しにくいコードを表すための列挙型の代替手段を提供し、型の安全性と可読性の利点を提供します。

以上がC# で理解できないコードを、読み取り可能な Enum のような構造で表現するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート