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 | IDE0300 |
| Judul | Menggunakan ekspresi koleksi untuk array |
| Kategori | Gaya |
| Subkategori | Aturan bahasa (preferensi tingkat ekspresi) |
| Bahasa yang diterapkan | C# 12+ |
| Opsi | dotnet_style_prefer_collection_expression |
Ikhtisar
Aturan ini menandai tempat ekspresi koleksi dapat digunakan untuk menginisialisasi array. Misalnya, aturan ini menawarkan untuk menyederhanakan kode seperti new C[] { ... }, new[] { ... }, dan C[] c = { ... } ke dalam formulir ekspresi koleksi ([...]).
Pilihan
Opsi menentukan perilaku yang Anda inginkan untuk diberlakukan aturan. Untuk informasi tentang mengonfigurasi opsi, lihat format Opsi .
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 jenis cocok secara longgar, 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 baku | when_types_loosely_match* |
*Saat opsi ini digunakan, perbaikan kode dapat mengubah semantik kode Anda.
Misalnya, jika Anda memiliki IEnumerable<int> x = new int[] { 1, 2, 3 };, maka dalam kode asli tersebut, akan dihasilkan sebuah array. Tetapi dalam kode baru (IEnumerable<int> x = [1, 2, 3];), jenis yang disintesis oleh kompilator internal diproduksi sebagai gantinya. Anda dapat mengamati perbedaan ini jika Anda menggunakan cek is atau casting.
Contoh
// 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];
Menyembunyikan peringatan
Jika Anda hanya ingin menekan satu pelanggaran, tambahkan arahan prapemrosesan ke file sumber Anda untuk menonaktifkan aturan, kemudian mengaktifkannya kembali.
#pragma warning disable IDE0300
// The code that's violating the rule is on this line.
#pragma warning restore IDE0300
Untuk menonaktifkan aturan untuk file, folder, atau proyek, atur tingkat keparahannya ke none dalam file konfigurasi .
[*.{cs,vb}]
dotnet_diagnostic.IDE0300.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.