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