Удаление ненужного лямбда-выражения (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
Дополнительные сведения см. в разделе Практическое руководство. Скрытие предупреждений анализа кода.