この記事では、IDE0047 と IDE0048の 2 つの関連ルールについて説明します。
| 財産 | 価値 |
|---|---|
| ルール ID | IDE0047 |
| タイトル | 不要なかっこを削除する |
| カテゴリ | スタイル |
| サブカテゴリ | 言語ルール (かっこの基本設定) |
| 該当する言語 | 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 |
| タイトル | わかりやすくするためにかっこを追加する |
| カテゴリ | スタイル |
| サブカテゴリ | 言語ルール (かっこの基本設定) |
| 該当する言語 | 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 |
算術二項演算子は、*、/、%、+、-、<<、>>、&、^、および |です。
// 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 |
関係二項演算子は、>、<、<=、>=、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 |
かっこを使用して他の二項演算子の優先順位を明確にする |
never_if_unnecessary |
他の二項演算子の優先順位が明確な場合は、かっこを使用しない | |
| 既定のオプション値 | 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
警告を抑制する
1 つの違反のみを抑制する場合は、ソース ファイルにプリプロセッサ ディレクティブを追加して無効にしてから、ルールを再度有効にします。
#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