かっこの基本設定 (IDE0047 および IDE0048)
この記事では、IDE0047
と IDE0048
という 2 つの関連するルールについて説明します。
プロパティ | 値 |
---|---|
ルール ID | IDE0047 |
タイトル | 不要なかっこを削除する |
カテゴリ | スタイル |
Subcategory | 言語ルール (かっこの基本設定) |
該当言語 | C# および Visual Basic |
導入されたバージョン | Visual Studio 2017 |
[オプション] | dotnet_style_parentheses_in_arithmetic_binary_operators |
dotnet_style_parentheses_in_relational_binary_operators |
|
dotnet_style_parentheses_in_other_binary_operators |
|
dotnet_style_parentheses_in_other_operators |
プロパティ | 値 |
---|---|
ルール ID | IDE0048 |
タイトル | わかりやすくするためにかっこを追加する |
カテゴリ | スタイル |
Subcategory | 言語ルール (かっこの基本設定) |
該当言語 | C# および Visual Basic |
導入されたバージョン | Visual Studio 2017 |
[オプション] | dotnet_style_parentheses_in_arithmetic_binary_operators |
dotnet_style_parentheses_in_relational_binary_operators |
|
dotnet_style_parentheses_in_other_binary_operators |
|
dotnet_style_parentheses_in_other_operators |
概要
このセクションのスタイル ルールはかっこの優先順位に関するものであり、算術、関係、その他の 2 項演算子で優先順位を明確にするためのかっこの使用を含みます。
オプション
このルールには関連付けられているオプションがあり、演算子の種類に基づいて優先順位を指定できます。
- 算術 2 項演算子 - dotnet_style_parentheses_in_arithmetic_binary_operators
- 関係 2 項演算子 - dotnet_style_parentheses_in_relational_binary_operators
- その他の 2 項演算子 - dotnet_style_parentheses_in_other_binary_operators
- その他の演算子 - dotnet_style_parentheses_in_other_operators
オプションの構成の詳細については、「オプションの書式」を参照してください。
dotnet_style_parentheses_in_arithmetic_binary_operators
プロパティ | 値 | 説明 |
---|---|---|
オプション名 | dotnet_style_parentheses_in_arithmetic_binary_operators | |
オプションの値 | always_for_clarity |
算術演算子の優先順位を明確にするためにかっこを使用します |
never_if_unnecessary |
算術演算子の優先順位が明確な場合はかっこを使用しません | |
既定のオプションの値 | always_for_clarity |
算術 2 項演算子は、*
、/
、%
、+
、-
、<<
、>>
、&
、^
、|
です。
// dotnet_style_parentheses_in_arithmetic_binary_operators = always_for_clarity
var v = a + (b * c);
// dotnet_style_parentheses_in_arithmetic_binary_operators = never_if_unnecessary
var v = a + b * c;
' dotnet_style_parentheses_in_arithmetic_binary_operators = always_for_clarity
Dim v = a + (b * c)
' dotnet_style_parentheses_in_arithmetic_binary_operators = never_if_unnecessary
Dim v = a + b * c
dotnet_style_parentheses_in_relational_binary_operators
プロパティ | 値 | 説明 |
---|---|---|
オプション名 | dotnet_style_parentheses_in_relational_binary_operators | |
オプションの値 | always_for_clarity |
関係演算子の優先順位を明確にするためにかっこを使用します |
never_if_unnecessary |
関係演算子の優先順位が明確な場合はかっこを使用しません | |
既定のオプションの値 | always_for_clarity |
関係 2 項演算子は、>
、<
、<=
、>=
、is
、as
、==
、!=
です。
// dotnet_style_parentheses_in_relational_binary_operators = always_for_clarity
var v = (a < b) == (c > d);
// dotnet_style_parentheses_in_relational_binary_operators = never_if_unnecessary
var v = a < b == c > d;
' dotnet_style_parentheses_in_relational_binary_operators = always_for_clarity
Dim v = (a < b) = (c > d)
' dotnet_style_parentheses_in_relational_binary_operators = never_if_unnecessary
Dim v = a < b = c > d
dotnet_style_parentheses_in_other_binary_operators
プロパティ | 値 | 説明 |
---|---|---|
オプション名 | dotnet_style_parentheses_in_other_binary_operators | |
オプションの値 | always_for_clarity |
その他の 2 項演算子の優先順位を明確にするためにかっこを使用します |
never_if_unnecessary |
その他の 2 項演算子の優先順位が明確な場合はかっこを使用しません | |
既定のオプションの値 | always_for_clarity |
その他の二項演算子は、&&
、||
、??
です。
// dotnet_style_parentheses_in_other_binary_operators = always_for_clarity
var v = a || (b && c);
// dotnet_style_parentheses_in_other_binary_operators = never_if_unnecessary
var v = a || b && c;
' dotnet_style_parentheses_in_other_binary_operators = always_for_clarity
Dim v = a OrElse (b AndAlso c)
' dotnet_style_parentheses_in_other_binary_operators = never_if_unnecessary
Dim v = a OrElse b AndAlso c
dotnet_style_parentheses_in_other_operators
プロパティ | 値 | 説明 |
---|---|---|
オプション名 | dotnet_style_parentheses_in_other_operators | |
オプションの値 | always_for_clarity |
その他の演算子の優先順位を明確にするためにかっこを使用します |
never_if_unnecessary |
その他の演算子の優先順位が明確な場合はかっこを使用しません | |
既定のオプションの値 | never_if_unnecessary |
このオプションは、次のもの "以外" の演算子に適用されます。
*
, /
, %
, +
, -
, <<
, >>
, &
, ^
, |
>
, <
, <=
, >=
, is
, as
, ==
, !=
&&
, ||
, ??
// dotnet_style_parentheses_in_other_operators = always_for_clarity
var v = (a.b).Length;
// dotnet_style_parentheses_in_other_operators = never_if_unnecessary
var v = a.b.Length;
' dotnet_style_parentheses_in_other_operators = always_for_clarity
Dim v = (a.b).Length
' dotnet_style_parentheses_in_other_operators = never_if_unnecessary
Dim v = a.b.Length
警告を抑制する
単一の違反だけを抑制する場合は、ソース ファイルにプリプロセッサ ディレクティブを追加して無効にしてから、規則を再度有効にします。
#pragma warning disable IDE0047 // Or IDE0048
// The code that's violating the rule is on this line.
#pragma warning restore IDE0047 // Or IDE0048
ファイル、フォルダー、またはプロジェクトのルールを無効にするには、構成ファイルでその重要度を none
に設定します。
[*.{cs,vb}]
dotnet_diagnostic.IDE0047.severity = none
dotnet_diagnostic.IDE0048.severity = none
すべてのコード スタイル規則を無効にするには、構成ファイルでカテゴリ Style
の重要度を none
に設定します。
[*.{cs,vb}]
dotnet_analyzer_diagnostic.category-Style.severity = none
詳細については、「コード分析の警告を抑制する方法」を参照してください。
関連項目
GitHub で Microsoft と共同作業する
このコンテンツのソースは GitHub にあります。そこで、issue や pull request を作成および確認することもできます。 詳細については、共同作成者ガイドを参照してください。
.NET