Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
| Vlastnost | Hodnota |
|---|---|
| ID pravidla | IDE0200 |
| název | Odstraňte nepotřebný výraz lambda |
| kategorie | Styl |
| podkategorie | Jazyková pravidla (předvolby bloku kódu) |
| příslušné jazyky | C# 11 a novější |
| Možnosti | csharp_style_prefer_method_group_conversion |
Přehled
Toto pravidlo označí použití výrazu lambda, kde není nutné. Výrazy lambda můžou být zbytečné, pokud jsou splněné následující podmínky:
- Výraz obsahuje vyvolání metody.
- Výraz lambda má stejné číslo a pořadí parametrů jako volání metody.
- Vyvolání metody nemá žádné vedlejší účinky.
- Výraz lambda není přiřazen k typu nelegování.
- Pokud je vyvolání obecnou metodou, zadají se argumenty typu.
- Návratový typ vyvolané metody lze převést na návratový typ výrazu lambda.
- Ve skupině metod existuje pouze jedna použitelná metoda.
Volby
Možnosti určují chování, které má pravidlo vynutit. Informace o konfiguraci možností naleznete v tématu Formát možnosti.
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 |
Deaktivuje 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čte upozornění
Pokud chcete potlačit pouze jedno porušení, přidejte do zdrojového souboru direktivy preprocesoru, abyste pravidlo zakázali a znovu povolili.
#pragma warning disable IDE0200
// The code that's violating the rule is on this line.
#pragma warning restore IDE0200
Chcete-li pravidlo pro soubor, složku nebo projekt zakázat, nastavte jeho závažnost na none v konfiguračním souboru .
[*.{cs,vb}]
dotnet_diagnostic.IDE0200.severity = none
Chcete-li zakázat všechna pravidla stylu kódu, nastavte závažnost pro kategorii Style na none v konfiguračním souboru .
[*.{cs,vb}]
dotnet_analyzer_diagnostic.category-Style.severity = none
Další informace naleznete v tématu Jak potlačit upozornění analýzy kódu.