Aturan bahasa dan yang tidak perlu
Aturan bahasa gaya kode memengaruhi bagaimana berbagai konstruksi bahasa pemrograman .NET, misalnya, pengubah, dan tanda kurung, digunakan.
Kategori ini juga mencakup aturan yang mengidentifikasi bagian dari basis kode yang tidak perlu dan dapat direfaktor atau dihapus. Kehadiran kode yang tidak perlu menunjukkan salah satu dari lebih dari masalah berikut:
- Keterbacaan: Kode yang tidak perlu menurunkan keterbacaan.
- Ketahanan: Kode yang tidak lagi digunakan setelah pemfaktoran ulang dan dipertahankan secara tidak perlu.
- Performa: Komputasi yang tidak perlu yang tidak memiliki efek samping dan menyebabkan overhead performa yang tidak perlu.
- Fungsionalitas: Masalah fungsional dalam kode yang membuat kode diperlukan berlebihan. Misalnya, IDE0060 menandai parameter yang tidak digunakan di mana metode secara tidak sengaja mengabaikan parameter input.
Aturan bahasa termasuk dalam kategori berikut:
- Aturan gaya .NET: Aturan yang berlaku untuk C# dan Visual Basic. Nama opsi untuk aturan ini dimulai dengan awalan
dotnet_style_
. - Aturan gaya C#: Aturan yang khusus untuk kode C#. Nama opsi untuk aturan ini dimulai dengan awalan
csharp_style_
. - Aturan gaya Visual Basic: Aturan yang khusus untuk kode Visual Basic. Nama opsi untuk aturan ini dimulai dengan awalan
visual_basic_style_
.
Format opsi
Banyak aturan bahasa memiliki satu atau beberapa opsi terkait untuk menyesuaikan gaya pilihan. Misalnya, Gunakan pernyataan 'penggunaan' sederhana (IDE0063) memiliki opsi csharp_prefer_simple_using_statement
terkait yang memungkinkan Anda menentukan apakah Anda lebih suka using
deklarasi atau using
pernyataan. Aturan memberlakukan opsi mana pun yang Anda pilih pada tingkat tertentu, misalnya, peringatan atau kesalahan.
Opsi untuk aturan bahasa dapat ditentukan dalam file konfigurasi dengan format berikut:
option_name = value
(Visual Studio 2019 dan yang lebih baru)
or
option_name = value:severity
Nilai
Untuk setiap aturan bahasa pemrogram, Anda menentukan nilai yang menentukan apakah atau kapan harus mengutamakan gaya. Banyak aturan menerima nilai
true
(mengutamakan gaya ini) ataufalse
(tidak mengutamakan gaya ini). Aturan lain menerima nilai sepertiwhen_on_single_line
ataunever
.Tingkat keparahan (opsional di Visual Studio 2019 dan versi yang lebih baru)
Bagian kedua aturan menentukan tingkat keparahan untuk aturan. Di .NET 9 dan versi yang lebih baru, tingkat keparahan selalu dihormati—yaitu, di dalam ID pengembangan dan selama build baris perintah. Di .NET 8 dan versi yang lebih lama, pengaturan tingkat keparahan ini hanya dihormati di dalam ID pengembangan, seperti Visual Studio, dan bukan selama build.
Jika Anda menggunakan .NET 8 SDK atau versi yang lebih lama dan Anda ingin tingkat keparahan dihormati pada waktu build, Anda dapat melakukannya dengan salah satu dari dua cara:
- Atur <AnalysisLevel> atau
<AnalysisLevelStyle>
properti ke9.0
atau lebih tinggi, atau kepreview
. - Atur tingkat keparahan dengan menggunakan sintaks konfigurasi tingkat keparahan berbasis ID aturan untuk penganalisis sebagai gantinya. Sintaks mengambil formulir
dotnet_diagnostic.<rule ID>.severity = <severity>
, misalnya,dotnet_diagnostic.IDE0040.severity = warning
. Untuk informasi selengkapnya, lihat tingkat keparahan.
- Atur <AnalysisLevel> atau
Tip
Mulai visual Studio 2019, Anda dapat mengonfigurasi aturan gaya kode dari menu bola lampu Tindakan Cepat setelah pelanggaran gaya terjadi.
Indeks aturan
Aturan bahasa dan kode yang tidak perlu dikategorikan lebih lanjut ke dalam subkategori, seperti preferensi tingkat ekspresi, preferensi blok kode, dan preferensi pengubah.
using
preferensi direktif- Preferensi blok kode
- Anggota-yang mengisi ekspresi
- Preferensi tingkat ekspresi
- Preferensi bidang
- Kata kunci bahasa vs. preferensi jenis kerangka kerja
- Preferensi pengubah
- Preferensi baris baru
- Preferensi pemeriksaan null
- Preferensi parameter
- Preferensi tanda kurung
- Preferensi pencocokan pola
- Preferensi supresi
This.
danme.
preferensivar
Preferensi
using
preferensi direktif
Aturan gaya .NET (C# dan Visual Basic):
Aturan gaya C#:
- Menghapus yang tidak perlu menggunakan direktif (IDE0005)
- Penempatan direktif 'menggunakan' (IDE0065)
Preferensi blok kode
Aturan gaya C#:
- Menambahkan kurung kurawal (IDE0011)
- Gunakan pernyataan 'menggunakan' sederhana (IDE0063)
- Preferensi deklarasi namespace (IDE0160, IDE0161)
- Menghapus ekspresi lambda yang tidak perlu (IDE0200)
- Mengonversi ke pernyataan tingkat atas (IDE0210)
- Konversi ke program gaya 'Program.Main' (IDE0211)
- Gunakan konstruktor utama (IDE0290)
Anggota-yang mengisi ekspresi
Aturan gaya C#:
- Menggunakan isi ekspresi untuk konstruktor (IDE0021)
- Menggunakan isi ekspresi untuk metode (IDE0022)
- Menggunakan isi ekspresi untuk operator (IDE0023, IDE0024)
- Menggunakan isi ekspresi untuk properti (IDE0025)
- Menggunakan isi ekspresi untuk pengindeks (IDE0026)
- Menggunakan isi ekspresi untuk aksesor (IDE0027)
- Menggunakan isi ekspresi untuk lambda (IDE0053)
- Menggunakan isi ekspresi untuk fungsi lokal (IDE0061)
Preferensi tingkat ekspresi
Aturan gaya .NET (C# dan Visual Basic):
- Menyederhanakan nama (IDE0001)
- Menyederhanakan akses anggota (IDE0002)
- Menghapus cast yang tidak perlu (IDE0004)
- Menambahkan kasus yang hilang untuk beralih pernyataan (IDE0010)
- Gunakan penginisialisasi objek (IDE0017)
- Menggunakan penginisialisasi koleksi (IDE0028)
- Pemeriksaan null dapat disederhanakan (IDE0029, IDE0030, IDE0270)
- Gunakan propagasi null (IDE0031)
- Menggunakan properti yang diimplementasikan secara otomatis (IDE0032)
- Gunakan nama tuple yang disediakan secara eksplisit (IDE0033)
- Menghapus kode yang tidak dapat dijangkau (IDE0035)
- Gunakan nama anggota yang disimpulkan (IDE0037)
- Gunakan pemeriksaan 'is null' (IDE0041)
- Menggunakan ekspresi kondisi untuk penugasan (IDE0045)
- Menggunakan ekspresi kondisi untuk pengembalian (IDE0046)
- Mengonversi jenis anonim menjadi tuple (IDE0050)
- Menghapus anggota privat yang tidak digunakan (IDE0051)
- Menghapus anggota privat yang belum dibaca (IDE0052)
- Menggunakan penetapan manyawa (IDE0054, IDE0074)
- Menghapus nilai ekspresi yang tidak perlu (IDE0058)
- Menghapus penetapan nilai yang tidak perlu (IDE0059)
- Gunakan 'System.HashCode.Combine' (IDE0070)
- Menyederhanakan interpolasi (IDE0071)
- Menyederhanakan ekspresi bersyar (IDE0075)
- Konversi
typeof
kenameof
(IDE0082) - Menghapus operator kesetaraan yang tidak perlu (IDE0100)
- Menyederhanakan ekspresi LINQ (IDE0120)
- Namespace tidak cocok dengan struktur folder (IDE0130)
Aturan gaya C#:
- Gunakan ekspresi lemparan (IDE0016)
- Deklarasi variabel sebaris (IDE0018)
- Menyederhanakan ekspresi 'default' (IDE0034)
- Gunakan fungsi lokal alih-alih lambda (IDE0039)
- Dekonstruksi deklarasi variabel (IDE0042)
- Menggunakan operator indeks (IDE0056)
- Menggunakan operator rentang (IDE0057)
- Menambahkan kasus yang hilang untuk beralih ekspresi (IDE0072)
- Hapus operator supresi yang tidak perlu (IDE0080)
- Menyederhanakan
new
ekspresi (IDE0090) - Hapus buang yang tidak perlu (IDE0110)
- Lebih suka pemeriksaan jenis cek atas 'null' (IDE0150)
- Menggunakan tuple untuk menukar nilai (IDE0180)
- Menambahkan cast eksplisit dalam foreach loop (IDE0220)
- Gunakan literal string UTF-8 (IDE0230)
- Direktif nullable berlebihan (IDE0240)
- Direktif nullable tidak perlu (IDE0241)
- Menggunakan ekspresi koleksi untuk array (IDE0300)
- Gunakan ekspresi koleksi untuk kosong (IDE0301)
- Gunakan ekspresi koleksi untuk alokasi tumpukan (IDE0302)
- Gunakan ekspresi koleksi untuk
Create()
(IDE0303) - Menggunakan ekspresi koleksi untuk penyusun (IDE0304
- Gunakan ekspresi koleksi untuk fasih (IDE0305)
Aturan gaya Visual Basic:
- Hapus
ByVal
(IDE0081) - Gunakan pencocokan pola (
IsNot
operator) (IDE0084) - Menyederhanakan pembuatan objek (IDE0140)
Preferensi bidang
Aturan gaya .NET (C# dan Visual Basic):
Kata kunci bahasa vs. preferensi jenis kerangka kerja
Aturan gaya .NET (C# dan Visual Basic):
Preferensi pengubah
Aturan gaya .NET (C# dan Visual Basic):
Aturan gaya C#:
- Membuat fungsi lokal statis (IDE0062)
- Membuat bidang struct bisa ditulis (IDE0064)
- Struct dapat dibuat 'readonly' (IDE0250)
- Anggota dapat dibuat 'readonly' (IDE0251)
Preferensi baris baru
- Perbolehkan beberapa baris kosong (IDE2000)
- Perbolehkan pernyataan yang disematkan pada baris yang sama (IDE2001)
- Perbolehkan baris kosong di antara kurung kurawal berturut-turut (IDE2002)
- Izinkan pernyataan segera setelah blokir (IDE2003)
- Izinkan baris kosong setelah titik dua dalam penginisialisasi konstruktor (IDE2004)
- Izinkan baris kosong setelah token dalam ekspresi kondisi (IDE2005)
- Perbolehkan baris kosong setelah token dalam ekspresi panah (IDE2006)
Preferensi pemeriksaan null
Aturan gaya C#:
Preferensi parameter
Aturan gaya .NET (C# dan Visual Basic):
Preferensi tanda kurung
Aturan gaya .NET (C# dan Visual Basic):
Preferensi pencocokan pola
Aturan gaya C#:
- Gunakan pencocokan pola untuk menghindari 'sebagai' diikuti dengan pemeriksaan 'null' (IDE0019)
- Gunakan pencocokan pola untuk menghindari pemeriksaan 'is' diikuti oleh cast (IDE0020, IDE0038)
- Menggunakan ekspresi pengalihan (IDE0066)
- Menggunakan pencocokan pola (IDE0078 dan IDE0260)
- Menggunakan pencocokan pola (
not
operator) (IDE0083) - Menyederhanakan pola properti (IDE0170)
Preferensi supresi
Aturan gaya .NET (C# dan Visual Basic):
This.
dan me.
preferensi
Aturan gaya .NET (C# dan Visual Basic):
var
Preferensi
Aturan gaya C#:
Lihat juga
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk