Gereksiz lambda ifadesini kaldırma (IDE0200)

Özellik Değer
Kural Kimliği IDE0200
Başlık Gereksiz lambda ifadesini kaldırma
Kategori Stil
Alt Kategori Dil kuralları (kod bloğu tercihleri)
Geçerli diller C# 11+
Seçenekler csharp_style_prefer_method_group_conversion

Genel Bakış

Bu kural, gereksiz olduğu durumlarda lambda ifadesinin kullanımını işaretler. Aşağıdakilerin tümü doğru olduğunda Lambda ifadeleri gereksiz olabilir:

  • İfade bir yöntem çağrısı içerir.
  • Lambda ifadesi, yöntem çağrısıyla aynı sayıda ve parametre sırasına sahiptir.
  • Yöntem çağrısının hiçbir yan etkisi yoktur.
  • Lambda ifadesi temsilci olmayan bir türe atanmadı.
  • Çağırma genel bir yöntemse, tür bağımsız değişkenleri sağlanır.
  • Çağrılan yöntemin dönüş türü lambda ifadesinin dönüş türüne dönüştürülebilir.
  • Yöntem grubunda yalnızca bir uygulanabilir yöntem vardır.

Seçenekler

Seçenekler, kuralın zorlamasını istediğiniz davranışı belirtir. Seçenekleri yapılandırma hakkında bilgi için bkz. Seçenek biçimi.

csharp_style_prefer_method_group_conversion

Özellik Değer Açıklama
Seçenek adı csharp_style_prefer_method_group_conversion
Seçenek değerleri true Lambda ifadesini yöntem grubuna dönüştürmeyi tercih edin.
false Kuralı devre dışı bırakır.
Varsayılan seçenek değeri true

Örnek

// 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);

Uyarıyı gizleme

Yalnızca tek bir ihlali engellemek istiyorsanız, kuralı devre dışı bırakmak ve sonra yeniden etkinleştirmek için kaynak dosyanıza önişlemci yönergeleri ekleyin.

#pragma warning disable IDE0200
// The code that's violating the rule is on this line.
#pragma warning restore IDE0200

Bir dosya, klasör veya projenin kuralını devre dışı bırakmak için, yapılandırma dosyasındaki önem derecesini none olarak ayarlayın.

[*.{cs,vb}]
dotnet_diagnostic.IDE0200.severity = none

Tüm kod stili kurallarını devre dışı bırakmak için, kategorinin önem derecesini Stylenone yapılandırma dosyasında olarak ayarlayın.

[*.{cs,vb}]
dotnet_analyzer_diagnostic.category-Style.severity = none

Daha fazla bilgi için bkz. Kod analizi uyarılarını gizleme.

Ayrıca bkz.