Odebrání nepotřebného výrazu lambda (IDE0200)
Vlastnost | Hodnota |
---|---|
ID pravidla | IDE0200 |
Název | Odebrání nepotřebného výrazu lambda |
Kategorie | Styl |
Subcategory | Pravidla jazyka (předvolby blokování kódu) |
Příslušné jazyky | C# 11+ |
Možnosti | csharp_style_prefer_method_group_conversion |
Přehled
Toto pravidlo označí použití výrazu lambda tam, kde není nutné. Výrazy lambda můžou být zbytečné, pokud platí následující:
- Výraz obsahuje vyvolání metody.
- Výraz lambda má stejný počet a pořadí parametrů jako volání metody.
- Vyvolání metody nemá žádné vedlejší účinky.
- Výraz lambda není přiřazen typu, který není delegovaný.
- Pokud je vyvolání obecná metoda, jsou zadány argumenty typu.
- Návratový typ volané metody lze převést na návratový typ výrazu lambda.
- Ve skupině metod je pouze jedna použitelná metoda.
Možnosti
Možnosti určují chování, které má pravidlo vynutit. Informace o konfiguraci možností najdete v tématu Formát možností.
csharp_style_prefer_method_group_conversion
Vlastnost | Hodnota | Popis |
---|---|---|
Název možnosti | csharp_style_prefer_method_group_conversion | |
Hodnoty možností | true |
Raději převeďte výraz lambda na skupinu metod. |
false |
Zakáže pravidlo. | |
Výchozí hodnota možnosti | true |
Příklad
// 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);
Potlačení upozornění
Pokud chcete potlačit pouze jedno porušení, přidejte do zdrojového souboru direktivy preprocesoru, které pravidlo zakažou a znovu ho povolí.
#pragma warning disable IDE0200
// The code that's violating the rule is on this line.
#pragma warning restore IDE0200
Pokud chcete pravidlo pro soubor, složku nebo projekt zakázat, nastavte jeho závažnost v konfiguračním souboru na none
.
[*.{cs,vb}]
dotnet_diagnostic.IDE0200.severity = none
Pokud chcete zakázat všechna pravidla stylu kódu, nastavte v konfiguračním souboru závažnost pro kategorii Style
na none
.
[*.{cs,vb}]
dotnet_analyzer_diagnostic.category-Style.severity = none
Další informace najdete v tématu Jak potlačit upozornění analýzy kódu.