Usuwanie niepotrzebnego wyrażenia lambda (IDE0200)
Właściwość | Wartość |
---|---|
Identyfikator zasady | IDE0200 |
Tytuł | Usuwanie niepotrzebnego wyrażenia lambda |
Kategoria | Styl |
Subcategory (Podkategoria) | Reguły języka (preferencje bloku kodu) |
Odpowiednie języki | C# 11+ |
Opcje | csharp_style_prefer_method_group_conversion |
Omówienie
Ta reguła flaguje użycie wyrażenia lambda, w którym jest niepotrzebne. Wyrażenia lambda mogą być niepotrzebne, gdy wszystkie następujące wyrażenia są prawdziwe:
- Wyrażenie zawiera wywołanie metody.
- Wyrażenie lambda ma taką samą liczbę i kolejność parametrów co wywołanie metody.
- Wywołanie metody nie ma skutków ubocznych.
- Wyrażenie lambda nie jest przypisane do typu innego niż delegat.
- Jeśli wywołanie jest metodą ogólną, argumenty typu są dostarczane.
- Typ zwracany metody wywoływanej można przekonwertować na typ zwracany wyrażenia lambda.
- W grupie metod istnieje tylko jedna odpowiednia metoda.
Opcje
Opcje określają zachowanie, które ma być wymuszane przez regułę. Aby uzyskać informacje na temat konfigurowania opcji, zobacz Format opcji.
csharp_style_prefer_method_group_conversion
Właściwość | Wartość | Opis |
---|---|---|
Nazwa opcji | csharp_style_prefer_method_group_conversion | |
Wartości opcji | true |
Wolisz przekonwertować wyrażenie lambda na grupę metod. |
false |
Wyłącza regułę. | |
Wartość opcji domyślnej | true |
Przykład
// 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);
Pomijanie ostrzeżenia
Jeśli chcesz pominąć tylko jedno naruszenie, dodaj dyrektywy preprocesora do pliku źródłowego, aby wyłączyć, a następnie ponownie włączyć regułę.
#pragma warning disable IDE0200
// The code that's violating the rule is on this line.
#pragma warning restore IDE0200
Aby wyłączyć regułę dla pliku, folderu lub projektu, ustaw jego ważność na none
w pliku konfiguracji.
[*.{cs,vb}]
dotnet_diagnostic.IDE0200.severity = none
Aby wyłączyć wszystkie reguły stylu kodu, ustaw ważność kategorii Style
na none
w pliku konfiguracji.
[*.{cs,vb}]
dotnet_analyzer_diagnostic.category-Style.severity = none
Aby uzyskać więcej informacji, zobacz Jak pominąć ostrzeżenia analizy kodu.