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.
| Properti | Nilai |
|---|---|
| ID Aturan | IDE0304 |
| Judul | Menggunakan ekspresi koleksi untuk penyusun |
| Golongan | Gaya |
| Subkategori | Aturan bahasa (preferensi tingkat ekspresi) |
| Bahasa pemrogram yang berlaku | C# 12+ |
| Opsi | dotnet_style_prefer_collection_expression |
Gambaran Umum
Aturan ini menandai tempat di mana CreateBuilder() metode atau serupa dipanggil untuk membuat jenis penyusun yang menambahkan elemen dan akhirnya membangun jenis koleksi yang memiliki CollectionBuilderAttribute atribut (misalnya, dengan memanggil ImmutableArray<T>.Builder.ToImmutable()). Sebagai gantinya, ekspresi koleksi ([...]) dapat digunakan untuk menginisialisasi koleksi.
Catatan
Aturan ini memerlukan versi API yang lebih baru dari API yang tidak dapat diubah (misalnya, System.Collections.Immutable), yang ikut serta dalam pola ekspresi koleksi.
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)
| Properti | 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* |
Sebaiknya gunakan ekspresi koleksi, bahkan ketika tipe datanya tidak sepenuhnya cocok, 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.
Contoh
// Code with violation.
var builder = ImmutableArray.CreateBuilder<int>();
builder.Add(1);
builder.AddRange(new int[] { 5, 6, 7 });
ImmutableArray<int> i = builder.ToImmutable();
// Fixed code.
ImmutableArray<int> i = [1, .. new int[] { 5, 6, 7 }];
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 IDE0304
// The code that's violating the rule is on this line.
#pragma warning restore IDE0304
Untuk menonaktifkan aturan untuk file, folder, atau proyek, atur tingkat keparahannya ke none dalam file konfigurasi.
[*.{cs,vb}]
dotnet_diagnostic.IDE0304.severity = none
Untuk menonaktifkan semua aturan gaya kode, atur tingkat keparahan Style untuk kategori none ke dalam file konfigurasi.
[*.{cs,vb}]
dotnet_analyzer_diagnostic.category-Style.severity = none
Untuk informasi selengkapnya, lihat Cara menyembunyikan peringatan analisis kode.