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 | IDE0028 |
| Başlık | Koleksiyon başlatıcılarını kullanma |
| Kategori | Üslup |
| altkategori | Dil kuralları (ifade düzeyi tercihleri) |
| Geçerli diller | C# ve Visual Basic |
| Seçenekleri | dotnet_style_collection_initializer |
dotnet_style_prefer_collection_expression |
Genel bakış
Bu stil kuralı, koleksiyon başlatıcılarının ve C# 12 veya üzerini kullanıyorsanız koleksiyon ifadelerinin koleksiyon başlatma için nasıl kullanılacağını ele alır.
.NET 8 (C# 12) ve sonraki sürümlerde, dotnet_style_prefer_collection_expression seçeneğini trueolarak ayarladıysanız Visual Studio'daki kod düzeltme koleksiyon başlatma kodunuzu koleksiyon ifadesi (List<int> list = [1, 2, 3];) kullanacak şekilde dönüştürür. Visual Basic'te ve .NET 7 (C# 11) ve önceki sürümlerinde kod düzeltmesi kodunuzu koleksiyon başlatıcısı (List<int> list = new List<int> { 1, 2, 3 };) kullanacak şekilde dönüştürür.
Not
Visual Studio'da kod düzeltme kullanırsanız, sunduğu değişiklik bazı durumlarda farklı semantiklere sahip olabilir. Örneğin, int[] x = new int[] { } biraz farklı semantiği olan int[] x = [];ile değiştirilir; derleyici yeni bir örnek oluşturmak yerine x için tek bir sözcük kullanır.
Seçenekler
Koleksiyonları başlatırken koleksiyon başlatıcılarının ve koleksiyon ifadelerinin tercih edilip edilmeyeceğini belirtmek için bu kuralla ilişkili seçeneklerin değerlerini ayarlayın.
Seçenekleri yapılandırma hakkında daha fazla bilgi için bkz. Seçenek biçimi.
dotnet_stil_koleksiyon_ilklendirici
| Mülk | Değer | Açıklama |
|---|---|---|
| Seçenek adı | dotnet_stil_koleksiyon_ilklendirici | |
| Seçenek değerleri | true |
Koleksiyon başlatıcılarını kullanmayı tercih edin. |
false |
Koleksiyon başlatıcılarını tercih etmeyin. | |
| varsayılan seçenek değeri |
true |
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.
(Bu seçenek yalnızca C# için geçerlidir.)
Örnekler
// IDE0028 violation.
List<int> list = new List<int>() { 1, 2, 3 };
// Fixed code (with dotnet_style_prefer_collection_expression = true)
List<int> list = [1, 2, 3];
' IDE0028 violation.
Dim list = New List(Of Integer)
list.Add(1)
list.Add(2)
list.Add(3)
' Fixed code.
Dim list = New List(Of Integer) From {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 IDE0028
// The code that's violating the rule is on this line.
#pragma warning restore IDE0028
Bir dosya, klasör veya projenin kuralını devre dışı bırakmak için önem derecesini
[*.{cs,vb}]
dotnet_diagnostic.IDE0028.severity = none
Tüm kod stili kurallarını devre dışı bırakmak için kategori
[*.{cs,vb}]
dotnet_analyzer_diagnostic.category-Style.severity = none
Daha fazla bilgi için bkz. Kod analizi uyarılarını gizleme.
Ayrıca bkz.
- Koleksiyon ifadeleri
- Nesne başlatıcıları (IDE0017) kullanma
- Dizi (IDE0300) için koleksiyon ifadesini kullanma