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


Удаление ненужных лямбда-выражений (IDE0200)

Недвижимость Ценность
идентификатор правила IDE0200
Заголовок Удаление ненужного лямбда-выражения
категория Стиль
Подкатегория Языковые правила (настройки блока кода)
применимые языки C# 11+
Опции csharp_style_prefer_method_group_conversion

Обзор

Это правило помечает использование лямбда-выражения, где это не нужно. Лямбда-выражения могут быть ненужными, если все это верно:

  • Выражение включает вызов метода.
  • Лямбда-выражение имеет то же число и порядок параметров, что и вызов метода.
  • Вызов метода не имеет побочных эффектов.
  • Лямбда-выражение не назначается типу, отличному от делегата.
  • Если вызов является универсальным методом, аргументы типа предоставляются.
  • Возвращаемый тип вызываемого метода можно преобразовать в возвращаемый тип лямбда-выражения.
  • В группе методов существует только один применимый метод.

Варианты

Параметры указывают поведение, которое вы хотите, чтобы правило обеспечивало. Для получения информации о настройке параметров см. Формат параметра.

csharp_style_prefer_method_group_conversion

Свойство Ценность Описание
Имя опции csharp_style_prefer_method_group_conversion
значения опций true Предпочитаете преобразовать лямбда-выражение в группу методов.
false Отключает правило.
значение параметра по умолчанию true

Пример

// Code with violations.
bool IsEven(int x) => x % 2 == 0;
_ = new[] { 1, 2, 3 }.Where(n => IsEven(n));

// Fixed code.
bool IsEven(int x) => x % 2 == 0;
_ = new[] { 1, 2, 3 }.Where(IsEven);

Подавление предупреждения

Если вы хотите отключить только одно нарушение, добавьте директивы препроцессора в исходный файл, чтобы отключить и повторно включить правило.

#pragma warning disable IDE0200
// The code that's violating the rule is on this line.
#pragma warning restore IDE0200

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

[*.{cs,vb}]
dotnet_diagnostic.IDE0200.severity = none

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

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

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

См. также