Поделиться через


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

Анализ стилей кода .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_стиль_var_для_встроенных_типов
csharp_style_var_when_type_is_apparent (используйте 'var', когда тип очевиден)
csharp_style_var_elsewhere
IDE0008 Используйте явный тип вместо var Стиль_CSharp_var_для_встроенных_типов
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_check
IDE0020 Используйте сопоставление шаблонов, чтобы избежать проверки is, после которой следует приведение типов (с переменной) csharp_стиль_сопоставления_образцов_с_проверкой_приведения
IDE0021 Используйте тело выражения для конструкторов csharp_style_expression_bodied_constructors
IDE0022 Используйте тело выражения для методов csharp_style_expression_bodied_methods
IDE0023 Использование тела выражения для операторов преобразования Операторы в стиле выражений C#
IDE0024 Использование тела выражения для операторов csharp_style_expression_bodied_operators (стиль C# для операторов с телами в виде выражений)
IDE0025 Используйте тело выражения для свойств csharp_style_expression_bodied_properties
IDE0026 Используйте тело выражения для индексаторов csharp_style_expression_bodied_indexers (стиль C# для индексаторов с телом выражения)
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 (стиль распространения null)
IDE0032 Использование автосвойства dotnet_style_prefer_auto_properties
IDE0033 Используйте явно указанное имя кортежа dotnet_style_explicit_tuple_names
IDE0034 Упрощение выражения default csharp_prefer_simple_default_expression
IDE0035 Удаление недостижимого кода
IDE0036 Модификаторы заказа 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_check
IDE0039 Используйте локальную функцию вместо лямбда-выражения csharp_style_prefer_local_over_anonymous_function
IDE0040 Добавить модификаторы доступа dotnet_style_require_accessibility_modifiers
IDE0041 Используйте проверку IS NULL dotnet_style_prefer_is_null_check_over_reference_equality_method
IDE0042 Деконструируйте объявление переменной csharp_style_деконструированная_переменная_объявление
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_скобки_в_других_операторах
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 Используйте оператор индекса csharp_style_prefer_index_operator
IDE0057 Используйте оператор range csharp_style_prefer_range_operator
IDE0058 Удаление ненужного значения выражения csharp_style_unused_value_expression_statement_preference
предпочтение_оператора_выражения_с_неиспользованным_значением_стиль_visual_basic
IDE0059 Удалите назначение лишних значений csharp_style_unused_value_assignment_preference
visual_basic_style_unused_value_assignment_preference
IDE0060 Удалите неиспользуемый параметр dotnet_code_quality_unused_parameters (параметры, не используемые в коде dotnet)
IDE0061 Использовать тело выражения для локальных функций csharp_style_expression_bodied_local_functions
IDE0062 Создание локальной функции static 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 Использование заголовка файла шаблон_заголовка_файла
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_предпочтение_не_шаблон
IDE0084 Использование сопоставления шаблонов (оператор IsNot) visual_basic_style_prefer_isnot_expression
IDE0090 Упрощение выражения new стиль_неявного_создания_объекта_csharp_когда_тип_очевиден
IDE0100 Удаление ненужного оператора равенства
IDE0110 Удалить ненужный элемент
IDE0120 Упрощение выражения LINQ
IDE0130 Пространство имен не соответствует структуре папок dotnet_style_namespace_match_folder
IDE0140 Упрощение создания объектов visual_basic_style_prefer_simplified_object_creation
IDE0150 Предпочитать проверку null вместо типовой проверки csharp_style_prefer_null_check_over_type_check
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 (предпочитать строковые литералы UTF-8)
IDE0240 Директива Nullable является избыточной
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_check
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 Используйте коллекционное выражение для плавности dotnet_style_prefer_collection_expression
IDE0306 Использование выражения коллекции для создания новых объектов dotnet_style_prefer_collection_expression
IDE0320 Создание анонимной функции static csharp_prefer_static_anonymous_function
IDE0330 Предпочитайте «System.Threading.Lock» csharp_prefer_system_threading_lock
IDE1005 Использовать условный вызов делегата csharp_style_conditional_delegate_call
IDE1006 Стили именования

Примечание.

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

Легенда

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

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

См. также