Удаление ненужного лямбда-выражения (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

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

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

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

См. также