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 |
|---|---|
| Identifikasi Aturan | IDE0306 |
| Judul | Gunakan ekspresi koleksi untuk implementasi baru |
| Kategori | Gaya |
| Subkategorie | Aturan bahasa (preferensi tingkat ekspresi) |
| Bahasa yang dapat diterapkan | C# 12+ |
| Opsi | dotnet_style_prefer_collection_expression |
Gambaran Umum
Aturan ini menandai tempat ekspresi koleksi dengan elemen spread (..) dapat digunakan untuk menginisialisasi daftar alih-alih new. Misalnya, aturan ini menawarkan untuk menyederhanakan kode seperti new List<...>(x) ke dalam formulir ekspresi koleksi ([.. x]).
Opsi
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 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 baku | when_types_loosely_match* |
*Saat opsi ini digunakan, perbaikan kode dapat mengubah semantik kode Anda.
Contoh
// Code with violation.
List<int> l1 = new List<int>(Enumerable.Range(1, 10));
List<int> m1 = new List<int>(new[] { 1, 2, 3 });
// Fixed code.
List<int> l1 = [.. Enumerable.Range(1, 10)];
List<int> m1 = [.. new[] { 1, 2, 3 }];
Menyembunyikan peringatan
Jika Anda hanya ingin menyembunyikan satu pelanggaran, tambahkan direktif pra-pemrosesan ke file sumber Anda untuk menonaktifkan dan kemudian mengaktifkan kembali aturan tersebut.
#pragma warning disable IDE0306
// The code that's violating the rule is on this line.
#pragma warning restore IDE0306
Untuk menonaktifkan aturan untuk file, folder, atau proyek, atur tingkat keparahannya ke none dalam file konfigurasi.
[*.{cs,vb}]
dotnet_diagnostic.IDE0306.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 menyembunyikan peringatan analisis kode.
Lihat juga
- Gunakan ekspresi koleksi untuk array (IDE0300)
- Gunakan ekspresi koleksi untuk menyatakan kosong (IDE0301)
- Gunakan ekspresi koleksi untuk stackalloc (IDE0302)
-
Gunakan ekspresi koleksi untuk
Create()(IDE0303) - Gunakan ekspresi koleksi untuk pembangun (IDE0304)
- Gunakan ekspresi koleksi untuk fasih (IDE0305)