Koleksiyon başlatıcıları veya ifadeleri kullanma (IDE0028)
Özellik | Değer |
---|---|
Kural Kimliği | IDE0028 |
Başlık | Koleksiyon başlatıcılarını kullanma |
Kategori | Stil |
Alt kategori | Dil kuralları (ifade düzeyi tercihleri) |
Geçerli diller | C# ve Visual Basic |
Seçenekler | 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 sonraki bir sürümünü kullanıyorsanız koleksiyon başlatma için koleksiyon ifadelerinin kullanımıyla ilgilidir.
.NET 8 (C# 12) ve sonraki sürümlerde, seçeneğiniz dotnet_style_prefer_collection_expression
olarak ayarlandıysa true
, Visual Studio'daki kod düzeltici koleksiyon başlatma kodunuzu bir 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ümlerde kod düzeltici 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üzelticisini 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 ile int[] x = [];
değiştirilir; derleyici yeni bir örnek oluşturmak yerine için x
tek bir değer 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_style_collection_initializer
Özellik | Değer | Açıklama |
---|---|---|
Seçenek adı | dotnet_style_collection_initializer | |
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_style_prefer_collection_expression (yalnızca C#
Özellik | Değer | Açıklama |
---|---|---|
Seçenek adı | dotnet_style_prefer_collection_expression | |
Seçenek değerleri | true |
Koleksiyon ifadelerini kullanmayı tercih edin. |
false |
Koleksiyon ifadelerini tercih etmeyin. | |
Varsayılan seçenek değeri | true |
Örnekler
// IDE0028 violation.
List<int> list = new List<int>();
list.Add(1);
list.Add(2);
list.Add(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}
// IDE0028 violation.
List<int> list = new List<int>();
list.Add(1);
list.Add(2);
list.Add(3);
// Fixed code.
List<int> list = new List<int>
{
1,
2,
3
};
// IDE0028 violation.
List<int> list = new List<int>();
list.Add(1);
list.AddRange(new[] { 5, 6, 7 });
// Fixed code.
List<int> list = [1, .. new[] { 5, 6, 7 }];
' 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, yapılandırma dosyasındaki önem derecesini none
olarak ayarlayın.
[*.{cs,vb}]
dotnet_diagnostic.IDE0028.severity = none
Kod stili kuralların tümünü devre dışı bırakmak için, kategorinin Style
none
önem derecesini 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.