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.
| Mülk | Değer |
|---|---|
| Kural Kimliği | IDE0220 |
| Başlık | Açık dönüştürme ekleyin |
| Kategori | Üslup |
| Alt Kategori | Dil kuralları (ifade düzeyi tercihleri) |
| Geçerli diller | C# |
| Seçenekleri | dotnet_style_prefer_foreach_explicit_cast_in_source |
Genel bakış
Bu kural, derleyicinin gizli bir dönüştürme ekleyeceği durumda, foreach döngüsünde açık bir dönüştürmenin yokluğunu işaretler. Genel veya güçlü tip belirtilmiş koleksiyonlar için, derleyici gizli bir tür dönüşümü eklerken açık bir tür dönüşümünü dayatmak, foreach deyiminde yanlış bir tür kullanımını ortaya çıkarabilir.
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.
foreach döngüsünde açık döküm tercihi (dotnet_style_prefer_foreach_explicit_cast_in_source)
| Mülk | Değer | Açıklama |
|---|---|---|
| Seçenek adı | dotnet_stil_tercih_et_foreach_açık_atama_kaynakta | |
| Seçenek değerleri | always |
Kaynak kodunda açık atamaları tercih edin. |
when_strongly_typed |
Kesin olarak yazılan (genel) koleksiyonlar için açık atamaları tercih edin, ancak ArrayListgibi eski koleksiyonlar için değil. | |
| varsayılan seçenek değeri | when_strongly_typed |
Örnek
// Code with violations.
var list = new List<object>();
foreach (string item in list) { }
// Fixed code.
var list = new List<object>();
foreach (string item in list.Cast<string>())
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 IDE0220
// The code that's violating the rule is on this line.
#pragma warning restore IDE0220
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.IDE0220.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.