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.

Zobacz też