'is' denetiminden sonra bir atama (IDE0020 ve IDE0038) kullanmak için desen eşleştirmeyi kullanın

Bu makalede, IDE0020IDE0038ve ile ilgili iki kural açıklanmaktadır.

Özellik Değer
Kural Kimliği IDE0020
Başlık Denetimin ardından bir atama (değişkenli) olmasını önlemek is için desen eşleştirmeyi kullanın
Kategori Stil
Alt kategori Dil kuralları (desen eşleştirme tercihleri)
Geçerli diller C#
Seçenekler csharp_style_pattern_matching_over_is_with_cast_check
Özellik Değer
Kural Kimliği IDE0038
Başlık Denetimin ardından bir atama (değişken olmadan) olmasını önlemek is için desen eşleştirmeyi kullanın
Kategori Stil
Alt kategori Dil kuralları (desen eşleştirme tercihleri)
Geçerli diller C#
Seçenekler csharp_style_pattern_matching_over_is_with_cast_check

Genel bakış

Bu stil kuralı, C# desen eşleştirmesinin kullanımıyla ilgilidir; örneğin, o is int ibir is denetim üzerinden ve ardından bir atamayla( örneğin, if (o is int) { ... (int)o ... }). IDE0020IDE0038 Atama ifadesinin ayrı bir yerel değişkene kaydedilip kaydedilmeyeceğini temel alarak veya etkinleştirin:

  • IDE0020: Atama ifadesi yerel bir değişkene kaydedilir. Örneğin, if (o is int) { var i = (int)o; } sonucunu (int)o yerel bir değişkene kaydeder.
  • IDE0038: Atama ifadesi yerel bir değişkene kaydedilmez . Örneğin, if (o is int) { if ((int)o == 1) { ... } } sonucunu (int)o yerel bir değişkene kaydetmez.

Seçenekler

Desen eşleştirme is veya denetim ve ardından tür atamasının tercih edilip edilmeyeceğini belirtmek için bu kural için ilişkili seçeneğin değerini ayarlayın.

Seçenekleri yapılandırma hakkında daha fazla bilgi için bkz . Seçenek biçimi.

csharp_style_pattern_matching_over_is_with_cast_check

Özellik Değer Açıklama
Seçenek adı csharp_style_pattern_matching_over_is_with_cast_check
Seçenek değerleri true Tür atamaları olan ifadeler yerine is desen eşleştirmeyi tercih edin.
false Kuralı devre dışı bırakır.
Varsayılan seçenek değeri true
// csharp_style_pattern_matching_over_is_with_cast_check = true
if (o is int i) {...}

// csharp_style_pattern_matching_over_is_with_cast_check = false
if (o is int) {var i = (int)o; ... }

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 IDE0020 // Or IDE0038
// The code that's violating the rule is on this line.
#pragma warning restore IDE0020 // Or IDE0038

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

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

Kod stili kuralların tümünü devre dışı bırakmak için, kategorinin Stylenoneönem derecesini 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.