Menggunakan penginisialisasi atau ekspresi koleksi (IDE0028)
Properti | Nilai |
---|---|
ID Aturan | IDE0028 |
Judul | Menggunakan penginisialisasi koleksi |
Golongan | Gaya |
Subkategori | Aturan bahasa (preferensi tingkat ekspresi) |
Bahasa pemrogram yang berlaku | C# dan Visual Basic |
Opsi | dotnet_style_collection_initializer |
dotnet_style_prefer_collection_expression |
Gambaran Umum
Aturan gaya ini menyangkut penggunaan penginisialisasi koleksi dan, jika Anda menggunakan C# 12 atau yang lebih baru, ekspresi koleksi untuk inisialisasi koleksi.
Di .NET 8 (C# 12) dan versi yang lebih baru, jika Anda memiliki dotnet_style_prefer_collection_expression
opsi yang diatur ke true
, perbaikan kode di Visual Studio mengonversi kode inisialisasi koleksi Anda untuk menggunakan ekspresi koleksi (List<int> list = [1, 2, 3];
). Di Visual Basic dan di .NET 7 (C# 11) dan versi yang lebih lama, perbaikan kode mengonversi kode Anda untuk menggunakan penginisialisasi koleksi (List<int> list = new List<int> { 1, 2, 3 };
).
Catatan
Jika Anda menggunakan perbaikan kode di Visual Studio, perubahan yang ditawarkannya mungkin memiliki semantik yang berbeda dalam beberapa kasus. Misalnya, int[] x = new int[] { }
diganti dengan int[] x = [];
, yang memiliki semantik yang sedikit berbeda—pengkompilasi menggunakan satuton untuk x
alih-alih membuat instans baru.
Opsi
Atur nilai opsi terkait untuk aturan ini untuk menentukan apakah inisialisasi koleksi dan ekspresi koleksi lebih disukai saat menginisialisasi koleksi atau tidak.
Untuk informasi selengkapnya tentang mengonfigurasi opsi, lihat Format opsi.
dotnet_style_collection_initializer
Properti | Nilai | Deskripsi |
---|---|---|
Nama opsi | dotnet_style_collection_initializer | |
Nilai opsi | true |
Lebih suka menggunakan penginisialisasi koleksi. |
false |
Jangan lebih suka penginisialisasi koleksi. | |
Nilai opsi default | true |
dotnet_style_prefer_collection_expression (khusus C#)
Properti | Nilai | Deskripsi |
---|---|---|
Nama opsi | dotnet_style_prefer_collection_expression | |
Nilai opsi | true |
Lebih suka menggunakan ekspresi koleksi. |
false |
Jangan lebih suka ekspresi koleksi. | |
Nilai opsi default | true |
Contoh
// 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}
Menyembunyikan peringatan
Jika Anda hanya ingin menekan satu pelanggaran, tambahkan arahan prapemroseduran ke file sumber Anda untuk menonaktifkan lalu mengaktifkan kembali aturan.
#pragma warning disable IDE0028
// The code that's violating the rule is on this line.
#pragma warning restore IDE0028
Untuk menonaktifkan aturan untuk file, folder, atau proyek, atur tingkat keparahannya ke none
dalam file konfigurasi.
[*.{cs,vb}]
dotnet_diagnostic.IDE0028.severity = none
Untuk menonaktifkan semua aturan gaya kode, atur tingkat keparahan none
untuk kategori Style
ke dalam file konfigurasi.
[*.{cs,vb}]
dotnet_analyzer_diagnostic.category-Style.severity = none
Untuk informasi selengkapnya, lihat Cara menyembunyikan peringatan analisis kode.