Параметры круглых скобок (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_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

Чтобы отключить все правила в стиле кода, задайте серьезность для категории Stylenone в файле конфигурации.

[*.{cs,vb}]
dotnet_analyzer_diagnostic.category-Style.severity = none

Дополнительные сведения см. в разделе Практическое руководство. Скрытие предупреждений анализа кода.

См. также раздел