プロパティに式本体を使用する (IDE0025)
プロパティ | 値 |
---|---|
ルール ID | IDE0025 |
Title | プロパティに式本体を使用する |
カテゴリ | スタイル |
Subcategory | 言語規則 (式形式のメンバー) |
該当言語 | C# |
[オプション] | csharp_style_expression_bodied_properties |
概要
このスタイル規則は、プロパティの式本体とブロック本体の使用に関するものです。
オプション
この規則に関連付けられているオプションの値を設定して、プロパティの式本体またはブロック本文を優先するかどうか、および式本体が優先される場合は、単一行の式のみで優先するかどうかを指定します。
オプションの構成の詳細については、「オプションの書式」を参照してください。
csharp_style_expression_bodied_properties
プロパティ | 値 | 説明 |
---|---|---|
オプション名 | csharp_style_expression_bodied_properties | |
オプションの値 | true |
プロパティに式本体を使用します |
when_on_single_line |
単一行になる場合は、プロパティに式本体を使用します | |
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;
}
}
警告を抑制する
単一の違反だけを抑制する場合は、ソース ファイルにプリプロセッサ ディレクティブを追加して無効にしてから、規則を再度有効にします。
#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