かっこの基本設定 (IDE0047 および IDE0048)

この記事では、IDE0047IDE0048 という 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 項演算子で優先順位を明確にするためのかっこの使用を含みます。

オプション

このルールには関連付けられているオプションがあり、演算子の種類に基づいて優先順位を指定できます。

オプションの構成の詳細については、「オプションの書式」を参照してください。

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 項演算子は、><<=>=isas==!= です。

// 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

詳細については、「コード分析の警告を抑制する方法」を参照してください。

関連項目