Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Bu makalede, IDE0020 ve IDE0038ilgili iki kural açıklanmaktadır.
| Mülk | Değer |
|---|---|
| Kural Kimliği | IDE0020 |
| Başlık |
is denetimini takiben bir tür dönüşümü (değişken ile) önlemek için desen eşleştirmeyi kullanın |
| Kategori | Üslup |
| alt kategori | Dil kuralları (desen eşleştirme tercihleri) |
| Geçerli diller | C# |
| Seçenekleri | csharp_style_pattern_matching_over_is_with_cast_check |
| Mülk | Değer |
|---|---|
| Kural Kimliği | IDE0038 |
| Başlık |
is denetiminin ardından bir tür dönüştürme (değişken olmadan) olmasını önlemek için desen eşlemeyi kullanın. |
| Kategori | Üslup |
| Alt Kategori | Dil kuralları (desen eşleştirme tercihleri) |
| Geçerli diller | C# |
| Seçenekleri | 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, is denetiminde o is int ive ardından if (o is int) { ... (int)o ... }. Atama ifadesinin ayrı bir yerel değişkene kaydedilmesi gerekip gerekmediğine bağlı olarak IDE0020 veya IDE0038 etkinleştirin:
-
IDE0020: atama ifadesi yerel değişkene kaydedilir. Örneğin,if (o is int) { var i = (int)o; }(int)osonucunu yerel değişkene kaydeder. -
IDE0038: atama ifadesi yerel değişkene kaydedilmez. Örneğin,if (o is int) { if ((int)o == 1) { ... } }(int)osonucunu yerel bir değişkene kaydetmez.
Seçenekler
Desen eşleştirme veya is denetimi 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_biçim_dili_desene_uyma_isleme_döküm_kontrolü_üzerinden
| Mülk | Değer | Açıklama |
|---|---|---|
| Seçenek adı | csharp_stil_desen_eşleştirme_is_üzerinden_cast_kontrolü_ile | |
| Seçenek değerleri | true |
Desen eşleştirmeyi, tür atamaları içeren is ifadeler yerine 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 önem derecesini yapılandırma dosyasında none olarak ayarlayın.
[*.{cs,vb}]
dotnet_diagnostic.IDE0020.severity = none
dotnet_diagnostic.IDE0038.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.
- C#'de desen eşleştirme için
- Kod stili dil kuralları
- Kod stili kuralları referansı