Параметры круглых скобок (IDE0047 и IDE0048)
В этой статье описываются два связанных правила: IDE0047
и IDE0048
.
Свойство | Значение |
---|---|
Идентификатор правила | 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 |
Свойство | Значение |
---|---|
Идентификатор правила | 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 |
Общие сведения
Правила стиля в этом разделе касаются параметров круглых скобок, включая использование круглых скобок для уточнения приоритета для арифметических, реляционных и других бинарных операторов.
Варианты
Это правило имеет связанные параметры для указания параметров в зависимости от типа оператора:
- Арифметические бинарные операторы — 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
Сведения о настройке параметров см. в разделе Формат параметра.
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
Отключение предупреждений
Если вы хотите подавить только одно нарушение, добавьте директивы препроцессора в исходный файл, чтобы отключить и снова включить правило.
#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
Дополнительные сведения см. в разделе Практическое руководство. Скрытие предупреждений анализа кода.