foreach döngüsünde açık atama ekleme (IDE0220)

Özellik Değer
Kural Kimliği IDE0220
Başlık Açık tür dönüştürme ekleme
Kategori Stil
Alt Kategori Dil kuralları (ifade düzeyi tercihleri)
Geçerli diller C#
Seçenekler dotnet_style_prefer_foreach_explicit_cast_in_source

Genel Bakış

Bu kural, derleyici gizli bir atama eklediğinde bir foreach döngüde açık bir atamanın yokluğuna bayrak ekler. Genel veya kesin olarak yazılan koleksiyonlar için, derleyici gizli bir atama eklediğinde açık bir atamayı zorlamak, deyiminde foreach yanlış bir türün 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.

dotnet_style_prefer_foreach_explicit_cast_in_source

Özellik Değer Açıklama
Seçenek adı dotnet_style_prefer_foreach_explicit_cast_in_source
Seçenek değerleri always Kaynak kodunda açık atamaları tercih edin.
when_strongly_typed Kesin türü belirlenmiş (genel) koleksiyonlar için açık atamaları tercih edin, ancak gibi ArrayListeski koleksiyonlar için tercih etmeyin.
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 öniş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, yapılandırma dosyasındaki önem derecesini none olarak ayarlayın.

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

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