'is' denetiminden sonra bir atama (IDE0020 ve IDE0038) kullanmak için desen eşleştirmeyi kullanın
Bu makalede, IDE0020
IDE0038
ve 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 i
bir is
denetim üzerinden ve ardından bir atamayla( örneğin, if (o is int) { ... (int)o ... }
). IDE0020
IDE0038
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 none
olarak 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 Style
none
ö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.