Правила стиля кода

Анализ стилей кода .NET предоставляет правила, направленные на поддержание согласованного стиля в базе кода. У этих правил в идентификаторе содержится префикс "IDE".

Правила стиля кода организованы в следующие подкатегории:

  • Языковые и ненужные правила кода

    Правила, относящиеся к языку C# или Visual Basic. Например, можно указать правила, касающиеся использования var при определении переменных или назначения приоритета членам, заданным выражениями. Эта категория также содержит правила, которые находят ненужный код, например неустранимый код в методах или неиспользуемых частных полях, свойствах или методах.

  • Правила форматирования

    Правила, относящиеся к макету и структуре кода, для повышения его читаемости. Например, можно указать параметр форматирования, определяющий, предпочтительны ли пробелы в блоках управления.

  • Правила именования

    Правила, относящиеся к именованию элементов кода. Например, можно указать, что имена методов async должны содержать суффикс "Async".

  • Прочие правила

    Правила, которые не относятся к другим категориям.

Указатель

В следующей таблице перечислены все правила стиля кода по идентификатору и параметрам, если таковые есть.

Идентификатор правила Заголовок Вариант
IDE0001 Упростить имя
IDE0002 Упрощение доступа для элементов
IDE0003 Удаление квалификации this или Me dotnet_style_qualification_for_field
dotnet_style_qualification_for_property
dotnet_style_qualification_for_method
dotnet_style_qualification_for_event
IDE0004 Удаление ненужного приведения
IDE0005 Удаление ненужных операций импорта
IDE0007 Использование var вместо явного типа csharp_style_var_for_built_in_types
csharp_style_var_when_type_is_apparent
csharp_style_var_elsewhere
IDE0008 Использование явного типа вместо var csharp_style_var_for_built_in_types
csharp_style_var_when_type_is_apparent
csharp_style_var_elsewhere
IDE0009 Добавление квалификации this или Me dotnet_style_qualification_for_field
dotnet_style_qualification_for_property
dotnet_style_qualification_for_method
dotnet_style_qualification_for_event
IDE0010 Добавление недостающих вариантов в оператор switch
IDE0011 Добавление фигурных скобок csharp_prefer_braces
IDE0016 Использование выражения throw csharp_style_throw_expression
IDE0017 Использование инициализаторов объектов dotnet_style_object_initializer
IDE0018 Объявление встроенной переменной csharp_style_inlined_variable_declaration
IDE0019 Используйте сопоставление шаблонов, чтобы избежать as и последующей проверки null csharp_style_pattern_matching_over_as_with_null_проверка
IDE0020 Использование сопоставления шаблонов, чтобы избежать проверки is, за которой следует приведение (с переменной) csharp_style_pattern_matching_over_is_with_cast_проверка
IDE0021 Использовать тело выражения для конструкторов csharp_style_expression_bodied_constructors
IDE0022 Используйте тело выражения для методов csharp_style_expression_bodied_methods
IDE0023 Использование тела выражения для операторов преобразования csharp_style_expression_bodied_operators
IDE0024 Использование тела выражения для операторов csharp_style_expression_bodied_operators
IDE0025 Используйте тело выражения для свойств csharp_style_expression_bodied_properties
IDE0026 Используйте тело выражения для индексаторов csharp_style_expression_bodied_indexers
IDE0027 Использовать тело выражения для методов доступа csharp_style_expression_bodied_accessors
IDE0028 Использование инициализаторов набора dotnet_style_collection_initializer
dotnet_style_prefer_collection_expression (только C#)
IDE0029 Можно упростить проверка null dotnet_style_coalesce_expression
IDE0030 Можно упростить проверка null dotnet_style_coalesce_expression
IDE0031 Использование распространения значений NULL dotnet_style_null_propagation
IDE0032 Использование автосвойства dotnet_style_prefer_auto_properties
IDE0033 Используйте явно указанное имя кортежа dotnet_style_explicit_tuple_names
IDE0034 Упрощение выражения default csharp_prefer_simple_default_expression
IDE0035 Удаление недостижимого кода
IDE0036 Модификаторы Order csharp_preferred_modifier_order
visual_basic_preferred_modifier_order
IDE0037 Использование выводимого имени элемента dotnet_style_prefer_inferred_tuple_names
dotnet_style_prefer_inferred_anonymous_type_member_names
IDE0038 Использование сопоставления шаблонов, чтобы избежать проверки is, за которой следует приведение (без переменной) csharp_style_pattern_matching_over_is_with_cast_проверка
IDE0039 Используйте локальную функцию вместо лямбда-выражения csharp_style_prefer_local_over_anonymous_function
IDE0040 Добавить модификаторы доступа dotnet_style_require_accessibility_modifiers
IDE0041 Использование проверки IS NULL dotnet_style_prefer_is_null_проверка_over_reference_equality_method
IDE0042 Деконструируйте объявление переменной csharp_style_deconstructed_variable_declaration
IDE0044 Добавить модификатор readonly dotnet_style_readonly_field
IDE0045 Используйте условное выражение для назначения dotnet_style_prefer_conditional_expression_over_assignment
IDE0046 Использование условного выражения для возврата dotnet_style_prefer_conditional_expression_over_return
IDE0047 Удаление ненужных круглых скобок 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 Добавление круглых скобок для ясности 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
IDE0049 Использовать ключевые слова языка вместо имен типов платформы для ссылок на типы dotnet_style_predefined_type_for_locals_parameters_members
dotnet_style_predefined_type_for_member_access
IDE0050 Преобразование анонимного типа в кортеж
IDE0051 Удаление неиспользуемых закрытых членов
IDE0052 Удалить непрочитанные закрытые члены
IDE0053 Используйте тело выражения для лямбда-выражений csharp_style_expression_bodied_lambdas
IDE0054 Использование составного оператора назначения dotnet_style_prefer_compound_assignment
IDE0055 Исправление форматирования (Слишком много, чтобы перечислить здесь. См . параметры форматирования .NET и параметры форматирования C#.)
IDE0056 Используйте оператор index csharp_style_prefer_index_operator
IDE0057 Используйте оператор range csharp_style_prefer_range_operator
IDE0058 Удаление ненужного значения выражения csharp_style_unused_value_expression_statement_preference
visual_basic_style_unused_value_expression_statement_preference
IDE0059 Удалите назначение лишних значений csharp_style_unused_value_assignment_preference
visual_basic_style_unused_value_assignment_preference
IDE0060 Удалите неиспользуемый параметр dotnet_code_quality_unused_parameters
IDE0061 Использовать тело выражения для локальных функций csharp_style_expression_bodied_local_functions
IDE0062 Превращение локальной функции в статическую csharp_prefer_static_local_function
IDE0063 Использование простого оператора using csharp_prefer_simple_using_statement
IDE0064 Сделайте поля структуры доступными для записи
IDE0065 Размещение директив using csharp_using_directive_placement
IDE0066 Использование выражения switch csharp_style_prefer_switch_expression
IDE0070 Использование System.HashCode.Combine
IDE0071 Упрощение интерполяции dotnet_style_prefer_simplified_interpolation
IDE0072 Добавление недостающих вариантов в выражение switch
IDE0073 Использование заголовка файла file_header_template
IDE0074 Использование объединенного составного оператора назначения dotnet_style_prefer_compound_assignment
IDE0075 Упрощение условного выражения dotnet_style_prefer_simplified_boolean_expressions
IDE0076 Удаление недопустимого глобального SuppressMessageAttribute
IDE0077 Не используйте устаревший формат для целевого объекта в глобальном атрибуте SuppressMessageAttribute
IDE0078 Использование сопоставления шаблонов csharp_style_prefer_pattern_matching
IDE0079 Удалить ненужное подавление dotnet_remove_unnecessary_suppression_exclusions
IDE0080 Удаление ненужного оператора подавления
IDE0081 удален параметр ByVal;
IDE0082 Преобразование typeof в nameof
IDE0083 Использование сопоставления шаблонов (оператор not) csharp_style_prefer_not_pattern
IDE0084 Использование сопоставления шаблонов (оператор IsNot) visual_basic_style_prefer_isnot_expression
IDE0090 Упрощение выражения new csharp_style_implicit_object_creation_when_type_is_apparent
IDE0100 Удаление ненужного оператора равенства
IDE0110 Удалить ненужную пустую переменную
IDE0120 Упрощение выражения LINQ
IDE0130 Пространство имен не соответствует структуре папок dotnet_style_namespace_match_folder
IDE0140 Упрощение создания объектов visual_basic_style_prefer_simplified_object_creation
IDE0150 Предпочитать null проверка по типу проверка csharp_style_prefer_null_проверка_over_type_проверка
IDE0160 Использование блочного пространства имен область csharp_style_namespace_declarations
IDE0161 Использование пространства имен с область файлами csharp_style_namespace_declarations
IDE0170 Упрощение шаблона свойств csharp_style_prefer_extended_property_pattern
IDE0180 Использование кортежа для замены значений csharp_style_prefer_tuple_swap
IDE0200 Удаление ненужного лямбда-выражения csharp_style_prefer_method_group_conversion
IDE0210 Преобразование в операторы верхнего уровня csharp_style_prefer_top_level_statements
IDE0211 Преобразование в программу стиля Program.Main csharp_style_prefer_top_level_statements
IDE0220 Добавление явного приведения в цикл foreach dotnet_style_prefer_foreach_explicit_cast_in_source
IDE0230 Использование строкового литерала UTF-8 csharp_style_prefer_utf8_string_literals
IDE0240 Директива NULL является избыточной
IDE0241 Директива nullable является ненужной
IDE0250 Структуру можно сделать "readonly" csharp_style_prefer_readonly_struct
IDE0251 Член можно сделать "readonly" csharp_style_prefer_readonly_struct_member
IDE0260 Использование сопоставления шаблонов csharp_style_pattern_matching_over_as_with_null_проверка
IDE0270 Можно упростить проверка null dotnet_style_coalesce_expression
IDE0280 Использование nameof
IDE0290 Использование основного конструктора csharp_style_prefer_primary_constructors
IDE0300 Использование выражения коллекции для массива dotnet_style_prefer_collection_expression
IDE0301 Использование выражения коллекции для пустого dotnet_style_prefer_collection_expression
IDE0302 Использование выражения коллекции для stackalloc dotnet_style_prefer_collection_expression
IDE0303 Использование выражения коллекции для Create() dotnet_style_prefer_collection_expression
IDE0304 Использование выражения коллекции для построителя dotnet_style_prefer_collection_expression
IDE0305 Использование выражения коллекции для fluent dotnet_style_prefer_collection_expression
IDE1005 Использовать условный вызов делегата csharp_style_conditional_delegate_call
IDE1006 Стили именования

Примечание.

Существуют некоторые правила, которые отображаются только в интегрированной среде разработки Visual Studio, и эти правила относятся к строкам шаблонов JSON и регулярных выражений. Дополнительные сведения см. в разделе JSON001, JSON002 и RE0001.

Условные обозначения

В следующей таблице показан тип сведений, предоставленных для каждого правила в справочной документации.

Позиция Description
Идентификатор правила Уникальный идентификатор правила. Используется для настройки серьезности правил и подавления предупреждений в файле кода.
Заголовок Название правила.
Категория Категория правила.
Подкатегории Подкатегорию для правила, таких как правила языка, правила форматирования или правила именования.
Применимые языки Применимые языки .NET (C# или Visual Basic) вместе с минимальной версией языка, если это применимо.
Представленные версии Версия пакета SDK для .NET или Visual Studio при первом введении правила.
Параметры Все доступные параметры правила.

См. также