次の方法で共有


field - フィールドに基づくプロパティ宣言

プロパティ アクセサーで C# 14 で導入されたコンテキスト キーワード fieldを使用して、プロパティのコンパイラ合成バッキング フィールドにアクセスします。 この構文を使用すると、 get または set アクセサーの本体を定義し、コンパイラが自動的に実装されるプロパティと同様に他のアクセサーを生成できます。

C# 言語リファレンスには、C# 言語の最新リリース バージョンが記載されています。 また、今後の言語リリースのパブリック プレビューの機能に関する初期ドキュメントも含まれています。

このドキュメントでは、言語の最後の 3 つのバージョンまたは現在のパブリック プレビューで最初に導入された機能を特定します。

ヒント

C# で機能が初めて導入された時期を確認するには、 C# 言語バージョン履歴に関する記事を参照してください。

fieldコンテキスト キーワードを追加すると、範囲チェックなどの利点を自動的に実装されるプロパティに追加するためのスムーズなパスが提供されます。 この方法を次の例に示します。

class TimePeriod4
{
    public double Hours {
        get;
        set => field = (value >= 0)
            ? value
            : throw new ArgumentOutOfRangeException(nameof(value), "The value must not be negative");
    }
}

Hours プロパティは、自動的に実装されるプロパティとして実装できます。 次に、負の値から保護する必要がある場合に検出します。 fieldを使用し、set アクセサーで範囲チェックを提供します。 バッキング フィールドを手動で宣言したり、 get アクセサーの本文を指定したりする必要はありません。

詳細については、プロパティインデクサーに関するページを参照してください。

C# 言語仕様

詳細については、「C# 言語の仕様」を参照してください。 言語仕様は、C# の構文と使用法に関する信頼性のある情報源です。