Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
| Harta benda | Nilai |
|---|---|
| ID Aturan |
IDE0028 |
| Judul | Menggunakan penginisialisasi koleksi |
| Kategori |
Gaya |
| Subkategori | Aturan bahasa (preferensi tingkat ekspresi) |
| bahasa yang berlaku | C# dan Visual Basic |
| Opsi |
dotnet_style_collection_initializer |
dotnet_style_prefer_collection_expression |
Ikhtisar
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 opsi dotnet_style_prefer_collection_expression 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-versi sebelumnya, perbaikan kode mengonversi kode Anda untuk menggunakan inisialisasi koleksi (List<int> list = new List<int> { 1, 2, 3 };).
Nota
Jika Anda menggunakan perbaikan kode int[] x = new int[] { } diganti dengan int[] x = [];, yang memiliki semantik yang sedikit berbeda—pengkompilasi menggunakan singleton untuk x alih-alih membuat instans baru.
Pilihan
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
| Harta benda | Nilai | Deskripsi |
|---|---|---|
| Nama opsi |
dotnet_style_collection_initializer | |
| Nilai opsi | true |
Lebih suka menggunakan penginisialisasi koleksi. |
false |
Jangan memilih penginisialisasi koleksi. | |
| nilai opsi default |
true |
dotnet_style_prefer_collection_expression (preferensi gaya dotnet untuk ekspresi koleksi)
| Harta benda | Nilai | Deskripsi |
|---|---|---|
| Nama opsi |
dotnet_style_prefer_collection_expression (preferensi gaya dotnet untuk ekspresi koleksi) | |
| Nilai opsi | true | when_types_exactly_match |
Lebih suka menggunakan ekspresi koleksi hanya ketika jenis cocok persis, misalnya, List<int> list = new List<int>() { 1, 2 };. |
when_types_loosely_match* |
Lebih suka menggunakan ekspresi koleksi bahkan ketika jenisnya hanya cocok sebagian, misalnya, IEnumerable<int> list = new List<int>() { 1, 2 };. Jenis yang ditargetkan harus cocok dengan jenis di sisi kanan atau menjadi salah satu jenis berikut: IEnumerable<T>, ICollection<T>, IList<T>, IReadOnlyCollection<T>, IReadOnlyList<T>. |
|
false | never |
Menonaktifkan aturan. | |
| nilai opsi default |
when_types_loosely_match* |
*Saat opsi ini digunakan, perbaikan kode dapat mengubah semantik kode Anda.
(Opsi ini hanya berlaku untuk C#.)
Contoh
// 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}
Menyembunyikan peringatan
Jika Anda hanya ingin mengabaikan satu pelanggaran, tambahkan arahan praprosesor ke file sumber Anda untuk menonaktifkan dan kemudian 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 untuk kategori Style ke none dalam file konfigurasi .
[*.{cs,vb}]
dotnet_analyzer_diagnostic.category-Style.severity = none
Untuk informasi selengkapnya, lihat Cara menekan peringatan analisis kode.