field
- フィールドに基づくプロパティ宣言
重要
field
キーワードは、C# 13 のプレビュー機能です。 field
コンテキスト キーワードを使用するには、.NET 9 を使用し、<LangVersion>
要素をプロジェクト ファイルにpreview
するように設定する必要があります。
field
という名前のフィールドがあるクラスでは、field
キーワード機能を使用する場合は注意が必要です。 新しい field
キーワードは、プロパティ アクセサーのスコープ内の field
という名前のフィールドをシャドウします。 field
変数の名前を変更するか、@
トークンを使用してfield
識別子を@field
として参照できます。 詳細については、field
キーワード機能の仕様を参照してください。
C# 13 のプレビュー機能として追加されたコンテキスト キーワード field
は、プロパティ アクセサーで使用して、プロパティのコンパイラ合成バッキング フィールドにアクセスできます。 この構文を使用すると、 get
または set
アクセサーの本体を定義し、コンパイラが自動的に実装されるプロパティと同様に他のアクセサーを生成できます。
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# の構文と使用法に関する信頼性のある情報源です。
.NET