| 財産 | 価値 | 
|---|---|
| ルール ID | IDE0025 | 
| タイトル | プロパティに式本体を使用する | 
| カテゴリ | スタイル | 
| 小分類 | 言語規則 (式形式のメンバー) | 
| 該当する言語 | C# | 
| オプション | csharp_style_expression_bodied_properties | 
概要
このスタイル規則は、プロパティの式本体とブロック本体の使用に関するものです。
オプション
プロパティの式本体またはブロック本体を優先するかどうか、および式本体が優先される場合は、単一行式にのみ優先するかどうかを指定するには、この規則の関連付けられたオプションの値を設定します。
オプションの構成の詳細については、「オプション形式 を参照してください。
csharp_style_expression_bodied_properties
| 財産 | 価値 | 説明 | 
|---|---|---|
| オプション名 | csharp_style_expression_bodied_properties | |
| オプション値 | true | プロパティに式本体を使用します | 
| when_on_single_line | プロパティが1行になる場合は、expression bodyを使用することを推奨します。 | |
| false | プロパティにブロック本体を使用します。 | |
| 既定のオプション値 | true | 
// csharp_style_expression_bodied_properties = true
public int Age => _age;
// csharp_style_expression_bodied_properties = false
public int Age { get { return _age; }}
このルールとIDE0027
このルール、IDE0025、および IDE0027 (アクセサーに式本体を使用) は非常によく似ています。 IDE0025 はプロパティ全体に関し、IDE0027 はプロパティのアクセサー部分に特に関連します。
単に計算を行わずに値を返す読み取り専用プロパティの場合、IDE0025 が csharp_style_expression_bodied_properties = false に設定されているが、IDE0027 が csharp_style_expression_bodied_accessors = trueに設定されている場合、次のようなプロパティになります。
public int TemperatureF
{
    get => _temp;
}
しかし、IDE0025 を csharp_style_expression_bodied_properties = trueに設定すると、プロパティはさらに簡略化されます(IDE0027 を csharp_style_expression_bodied_accessors = falseに設定した場合でも)。
public int TemperatureF => _temp;
読み取り/書き込みプロパティの場合、プロパティを式形式で記述できないため (複数の行で構成されているため) 違いが少し明らかになります。 このため、IDE0025 が csharp_style_expression_bodied_properties = true に設定されている場合も、中かっこ、つまりブロック本体が使用されることになります。
次の例は、2 つのオプションのさまざまな組み合わせでプロパティがどのように表示されるかを示しています。
// csharp_style_expression_bodied_properties = false
// csharp_style_expression_bodied_accessors = true
public int TemperatureB
{
    get => _temp;
}
// csharp_style_expression_bodied_properties = true
// csharp_style_expression_bodied_accessors = true (or false)
public int TemperatureC => _temp;
// csharp_style_expression_bodied_properties = true (or false)
// csharp_style_expression_bodied_accessors = true
public int TemperatureD
{
    get => _temp;
    set => _temp = value;
}
// csharp_style_expression_bodied_properties = true
// csharp_style_expression_bodied_accessors = false
public int TemperatureE
{
    get
    {
        return _temp;
    }
    set
    {
        _temp = value;
    }
}
警告を抑制する
1 つの違反のみを抑制する場合は、ソース ファイルにプリプロセッサ ディレクティブを追加して無効にしてから、ルールを再度有効にします。
#pragma warning disable IDE0025
// The code that's violating the rule is on this line.
#pragma warning restore IDE0025
ファイル、フォルダー、またはプロジェクトのルールを無効にするには、その重大度を 構成ファイルに none に設定します。
[*.{cs,vb}]
dotnet_diagnostic.IDE0025.severity = none
すべてのコード スタイルルールを無効にするには、カテゴリ Style の重大度を、構成ファイルに none するように設定します。
[*.{cs,vb}]
dotnet_analyzer_diagnostic.category-Style.severity = none
詳細については、「コード分析の警告を抑制する方法」を参照してください。
関連項目
.NET