Aracılığıyla paylaş


Dizi için koleksiyon ifadesini kullanma (IDE0300)

Mülk Değer
Kural Kimliği IDE0300
Başlık Dizi için koleksiyon ifadesini kullanma
Kategori Üslup
alt kategori Dil kuralları (ifade düzeyi tercihleri)
Geçerli diller C# 12+
Seçenekleri dotnet_style_prefer_collection_expression

Genel bakış

Bu kural, diziyi başlatmak için koleksiyon ifadesinin kullanılabildiği yerleri işaretler. Örneğin, bu kural new C[] { ... }, new[] { ... }ve C[] c = { ... } gibi kodları koleksiyon ifadesi formuna ([...]) basitleştirmeyi sunar.

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_stili_koleksiyon_ifadesini_tercih_et

Mülk Değer Açıklama
Seçenek adı dotnet_stili_koleksiyon_ifadesini_tercih_et
Seçenek değerleri true | when_types_exactly_match Koleksiyon ifadelerini yalnızca türler tam olarak eşleştiğinde kullanmayı tercih eder, örneğin List<int> list = new List<int>() { 1, 2 };.
when_types_loosely_match* Türler gevşek bir şekilde eşleştiğinde bile koleksiyon ifadelerini kullanmayı tercih edin, örneğin IEnumerable<int> list = new List<int>() { 1, 2 };. Hedeflenen türün sağ taraftaki türle eşleşmesi veya şu türlerden biri olması gerekir: IEnumerable<T>, ICollection<T>, IList<T>, IReadOnlyCollection<T>, IReadOnlyList<T>.
false | never Kuralı devre dışı bırakır.
varsayılan seçenek değeri when_types_loosely_match*

*Bu seçenek kullanıldığında kod düzeltmesi kodunuzun semantiğini değiştirebilir.

Örneğin, IEnumerable<int> x = new int[] { 1, 2, 3 };varsa, özgün kodda bir dizi oluşturulur. Ancak yeni kodda (IEnumerable<int> x = [1, 2, 3];), bunun yerine derleyici tarafından sentezlenen bir iç tür oluşturulur. is denetimi veya dönüştürme kullanıyorsanız bu farkı görebilirsiniz.

Örnek

// Code with violations.
int[] i = new int[] { 1, 2, 3 };
IEnumerable<int> j = new int[] { 1, 2, 3 };

// Fixed code.
int[] i = [1, 2, 3];
IEnumerable<int> j = [1, 2, 3];

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

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

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

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