Язык и ненужные правила
Правила языка в стиле кода влияют на то, как используются различные конструкции языков программирования .NET, например модификаторы и круглые скобки.
Эта категория также содержит правила, определяющие части базы кода, которые являются ненужными и могут быть рефакторингированы или удалены. Наличие ненужного кода указывает на одну или несколько следующих проблем:
- Удобочитаемость: код, который ненужно снижает удобочитаемость.
- Удобство обслуживания: код, который больше не используется после рефакторинга и не поддерживается без необходимости.
- Производительность: ненужные вычисления, не имеющие побочных эффектов и ведущие к ненужным издержкам производительности.
- Функциональные возможности: функциональная проблема в коде, которая делает требуемый код избыточным. Например, IDE0060 помечает неиспользуемые параметры, когда метод случайно игнорирует входной параметр.
Правила языка делятся на следующие категории:
- Правила стиля .NET в равной мере применяются к C# и Visual Basic. Имена параметров для этих правил начинаются с префикса
dotnet_style_
. - Правила стиля C#: правила, относящиеся к коду C#. Имена параметров для этих правил начинаются с префикса
csharp_style_
. - Правила стиля Visual Basic: правила, относящиеся к коду Visual Basic. Имена параметров для этих правил начинаются с префикса
visual_basic_style_
.
Формат параметра
Многие правила языка имеют один или несколько связанных параметров для настройки предпочтительного стиля. Например, используйте простую инструкцию using (IDE0063) с соответствующим параметром csharp_prefer_simple_using_statement
, который позволяет определить, предпочитаете using
ли вы объявление или using
оператор. Правило применяет все параметры, которые вы выбираете на указанном уровне, например предупреждение или ошибка.
Параметры языковых правил можно указать в файле конфигурации со следующим форматом:
option_name = value
(Visual Studio 2019 и более поздних версий)
or
option_name = value:severity
Value
Для каждого правила языка укажите значение, которое определяет условия выбора соответствующего стиля. Многие правила принимают значение
true
(предпочитать этот стиль) илиfalse
(не предпочитать этот стиль). Другие правила принимают значенияwhen_on_single_line
илиnever
.Серьезность (необязательно в Visual Studio 2019 и более поздних версиях)
Вторая часть правила определяет уровень серьезности правила. В .NET 9 и более поздних версиях уровень серьезности всегда учитывается— то есть внутри среды разработки и во время сборки командной строки. В .NET 8 и более ранних версиях этот параметр серьезности учитывается только внутри идентификаторов разработки, таких как Visual Studio, а не во время сборки.
Если вы используете пакет SDK для .NET 8 или более раннюю версию и хотите, чтобы серьезность была уважаема во время сборки, это можно сделать одним из двух способов:
- Задайте значение <AnalysisLevel> или
<AnalysisLevelStyle>
свойство9.0
или более поздней версии или значениеpreview
. - Задайте уровень серьезности с помощью синтаксиса конфигурации серьезности на основе идентификаторов правила для анализаторов. Синтаксис имеет вид
dotnet_diagnostic.<rule ID>.severity = <severity>
, напримерdotnet_diagnostic.IDE0040.severity = warning
. Дополнительные сведения см. в разделе об уровне серьезности.
- Задайте значение <AnalysisLevel> или
Совет
Начиная с Visual Studio 2019, можно настроить правила стиля кода из меню лампочки быстрых действий после нарушения стиля.
Индекс правила
Языковые и ненужные правила кода классифицируются в подкатегории, такие как предпочтения уровня выражений, параметры блока кода и параметры модификатора.
using
Параметры директивы- Параметры блока кода
- Элементы, воплощающие выражение
- Настройки уровня выражений
- Параметры поля
- Языковые ключевые слова и параметры типов платформ
- Предпочтения для модификаторов
- Настройки новой строки
- Параметры проверки NULL
- Предпочтения для параметров
- Предпочтения относительно круглых скобок
- Параметры сопоставления шаблонов
- Предпочтения подавления
This.
иme.
настройкиvar
Предпочтения
using
Параметры директивы
Правила стиля .NET (C# и Visual Basic):
Правила стиля C#:
Параметры блока кода
Правила стиля C#:
- Добавление фигурных скобок (IDE0011)
- Использование простого оператора using (IDE0063)
- Параметры объявления пространства имен (IDE0160, IDE0161)
- Удаление ненужных лямбда-выражений (IDE0200)
- Преобразование в операторы верхнего уровня (IDE0210)
- Преобразование в программу стилей Program.Main (IDE0211)
- Использование основного конструктора (IDE0290)
- Предпочитайте System.Threading.Lock (IDE0330)
Элементы, воплощающие выражение
Правила стиля C#:
- Используйте тело выражения для конструкторов (IDE0021)
- Используйте тело выражения для методов (IDE0022)
- Использование текста выражения для операторов (IDE0023, IDE0024)
- Используйте тело выражения для свойств (IDE0025)
- Используйте тело выражения для индексаторов (IDE0026)
- Используйте тело выражения для методов доступа (IDE0027)
- Использование текста выражения для лямбда-выражений (IDE0053)
- Используйте тело выражения для локальных функций (IDE0061)
Предпочтения уровня выражений
Правила стиля .NET (C# и Visual Basic):
- Упрощение имени (IDE0001)
- Упрощение доступа для членов (IDE0002)
- Удаление ненужных операций приведения (IDE0004)
- Добавление недостающих вариантов в выражение switch (IDE0010)
- Использование инициализаторов объектов (IDE0017)
- Использование инициализаторов коллекций (IDE0028)
- Проверка null может быть упрощена (IDE0029, IDE0030, IDE0270)
- Использование распространения значений NULL (IDE0031)
- Использование автоматически реализованного свойства (IDE0032)
- Использование явно указанного имени кортежа (IDE0033)
- Удаление недоступного кода (IDE0035)
- Используйте выводимые имена элементов (IDE0037)
- Использование проверки "is NULL" (IDE0041)
- Использование условного выражения для назначения (IDE0045)
- Использование условного выражения для возврата (IDE0046)
- Преобразование анонимного тип в кортеж (IDE0050)
- Удаление неиспользуемых закрытых членов (IDE0051)
- Удаление непрочитанных закрытых членов (IDE0052)
- Использование составного назначения (IDE0054, IDE0074)
- Удаление ненужных значений выражения (IDE0058)
- Удалите назначение лишних значений (IDE0059)
- Использование "System.HashCode.Combine" (IDE0070)
- Упрощение интерполяции (IDE0071)
- Упрощение условного выражения (IDE0075)
nameof
Преобразованиеtypeof
в (IDE0082)- Удаление ненужного оператора равенства (IDE0100)
- Упрощение выражения LINQ (IDE0120)
- Пространство имен не соответствует структуре папок (IDE0130)
Правила стиля C#:
- Использование выражения throw (IDE0016)
- Объявление встроенной переменной (IDE0018)
- Упрощение выражения default (IDE0034)
- Использование локальной функции вместо лямбда-выражения (IDE0039)
- Деконструирование объявления переменной (IDE0042)
- Использование оператора index (IDE0056)
- Использование оператора range (IDE0057)
- Добавление недостающих вариантов в выражение switch (IDE0072)
- Удаление ненужных операторов подавления (IDE0080)
- Упрощение
new
выражения (IDE0090) - Удаление ненужных отклонений (IDE0110)
- Предпочитать проверку типа null (IDE0150)
- Использование кортежа для замены значений (IDE0180)
- Добавление явного приведения в цикл foreach (IDE0220)
- Использование строкового литерала UTF-8 (IDE0230)
- Директива null является избыточной (IDE0240)
- Директива NULL не требуется (IDE0241)
- Использование выражения коллекции для массива (IDE0300)
- Использование выражения коллекции для пустого (IDE0301)
- Использование выражения коллекции для выделения стека (IDE0302)
- Использование выражения коллекции для
Create()
(IDE0303) - Использование выражения коллекции для построителя (IDE0304
- Использование выражения коллекции для fluent (IDE0305)
Правила стиля Visual Basic:
- Удаление
ByVal
(IDE0081) - Использовать сопоставление шаблонов (оператор
IsNot
) (IDE0084) - Упрощение создания объектов (IDE0140)
Параметры поля
Правила стиля .NET (C# и Visual Basic):
Языковые ключевые слова и параметры типов платформ
Правила стиля .NET (C# и Visual Basic):
Предпочтения относительно модификаторов
Правила стиля .NET (C# и Visual Basic):
Правила стиля C#:
- Превращение локальной функции в статическую (IDE0062)
- Сделайте поля структуры доступными для записи (IDE0064)
- Структуру можно сделать "readonly" (IDE0250)
- Элемент можно сделать "readonly" (IDE0251)
- Создание статической анонимной функции (IDE0320)
Настройки новой строки
- Разрешить несколько пустых строк (IDE2000)
- Разрешить внедренные инструкции в одной строке (IDE2001)
- Разрешить пустые строки между последовательными скобками (IDE2002)
- Разрешить оператор сразу после блокировки (IDE2003)
- Разрешить пустую строку после двоеточия в инициализаторе конструктора (IDE2004)
- Разрешить пустую строку после маркера в условном выражении (IDE2005)
- Разрешить пустую строку после маркера в выражении со стрелками (IDE2006)
Параметры проверки NULL
Правила стиля C#:
Предпочтения для параметров
Правила стиля .NET (C# и Visual Basic):
Предпочтения относительно круглых скобок
Правила стиля .NET (C# и Visual Basic):
Параметры сопоставления шаблонов
Правила стиля C#:
- Используйте сопоставление шаблонов, чтобы избежать "как", за которым следует проверка null (IDE0019)
- Используйте сопоставление шаблонов, чтобы избежать проверки "is", за которой следует приведение (IDE0020, IDE0038)
- Использовать выражение switch (IDE0066)
- Использование сопоставления шаблонов (IDE0078 и IDE0260)
- Использовать сопоставление шаблонов (оператор
not
) (IDE0083) - Упрощение шаблона свойств (IDE0170)
Предпочтения подавления
Правила стиля .NET (C# и Visual Basic):
This.
и me.
настройки
Правила стиля .NET (C# и Visual Basic):
var
Предпочтения
Правила стиля C#: