Aracılığıyla paylaş


Desen eşleştirmeyi kullanma (IDE0078 ve IDE0260)

Bu makalede, IDE0078 ve IDE0260ilgili iki kural açıklanmaktadır.

Mülk Değer
kural kimliği IDE0078
Başlık Desen eşleştirmeyi kullanma
Kategori Üslup
Alt Kategori Dil kuralları (desen eşleştirme tercihleri)
Geçerli diller C# 9.0+
Seçenekleri csharp_style_prefer_pattern_matching
Mülk Değer
Kural Kimliği IDE0260
Başlık Desen eşleştirmeyi kullanma
Kategori Üslup
alt kategori Dil kuralları (desen eşleştirme tercihleri)
Geçerli diller C#
Seçenekleri csharp_style_pattern_matching_over_as_with_null_check

Genel bakış

Bu stil kuralı, C# desen eşleştirme yapılarının kullanımıyla ilgilidir.

IDE0260 özellikle bir as ifadesinin kullanımına bayrak ekler ve ardından null koşullu işleciokunan bir üye izler. Bu kural, as ifadesinin ardından yapılan bir null denetimini işaretleyen IDE0019'e benzer.

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_pattern_matching (IDE0078)

Mülk Değer Açıklama
Seçenek adı csharp_style_prefer_pattern_matching
Seçenek değerleri true Mümkün olduğunda desen eşleştirme yapılarını kullanmayı tercih edin
false Desen eşleştirme yapılarını kullanmamak tercih eder.
varsayılan seçenek değeri true

csharp_style_pattern_matching_over_as_with_null_check (IDE0260)

Bu seçenek, IDE0019kuralı da yapılandırıyor.

Mülk Değer Açıklama
Seçenek adı C# stilinde desene uyan "as" kullanarak null kontrolü
Seçenek değerleri true as ifadesindeki null koşullu üye erişimi yerine desen eşleştirmeyi tercih edin.
false Kuralı devre dışı bırakır.
varsayılan seçenek değeri true

Örnekler

IDE0078

// csharp_style_prefer_pattern_matching = true
var x = i is default(int) or > (default(int));
var y = o is not C c;

// csharp_style_prefer_pattern_matching = false
var x = i == default || i > default(int);
var y = !(o is C c);

IDE0260

// Code with violations.
object? o = null;
if ((o as string)?.Length == 0)
{
}

// Fixed code (csharp_style_pattern_matching_over_as_with_null_check = true).
object? o = null;
if (o is string { Length: 0 })
{
}

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 ön işlemci yönergeleri ekleyin.

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

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

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

Tüm kod stili kurallarını devre dışı bırakmak için kategori Style önem derecesini yapılandırma dosyasında none 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.