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 | Value |
|---|---|
| ID Aturan | IDE0410 |
| Title | Gunakan pernyataan lompat berlabel |
| Category | Style |
| Subkategori | Aturan bahasa (preferensi blok kode) |
| Bahasa yang berlaku | C# 15+ |
| Opsi | csharp_style_prefer_labeled_jump_statements |
Ikhtisar
Untuk alur kontrol perulangan berlapis yang lebih jelas dan ringkas, aturan ini menandai kode yang menggunakan pernyataan goto atau pola penanda Boolean untuk keluar dari atau melanjutkan perulangan berlapis, ketika pernyataan break atau continue berlabel (C# 15+) dapat digunakan sebagai gantinya.
Aturan mendeteksi pola berikut:
- Pernyataan
gotoyang meloncat ke label tepat setelah loop bertingkat, yang dapat diganti denganbreak <label>. - Pernyataan
gotoyang melompat ke label yang kosong di akhir badan perulangan (yang secara efektif melanjutkan perulangan luar), yang dapat diganti dengancontinue <label>. - Pola bendera Boolean, di mana variabel bendera diatur ke
truedan kemudian diperiksa di setiap tingkat perulangan untuk menyebarluaskan jeda atau melanjutkan ke luar melalui perulangan berlapis, yang dapat diganti dengan satu berlabelbreak <label>ataucontinue <label>.
Opsi
Opsi menentukan perilaku yang Anda inginkan untuk diberlakukan aturan. Untuk informasi tentang mengonfigurasi opsi, lihat Format opsi.
gaya_C#_lebih_memilih_pernyataan_lompatan_berlabel
| Harta benda | Value | Deskripsi |
|---|---|---|
| Nama opsi | csharp_style_prefer_labeled_jump_statements | |
| Nilai opsi | true |
Utamakan pernyataan lompatan berlabel |
false |
Menonaktifkan aturan | |
| Nilai pilihan default | true |
Example
Contoh berikut menunjukkan tiga pola yang dideteksi aturan ini:
goto diganti dengan label break
// Code with violations.
for (int x = 0; x < 10; x++)
{
for (int y = 0; y < 10; y++)
{
if (x * y > 20)
goto found;
}
}
found:
Console.WriteLine("Done");
// Fixed code.
found: for (int x = 0; x < 10; x++)
{
for (int y = 0; y < 10; y++)
{
if (x * y > 20)
break found;
}
}
Console.WriteLine("Done");
goto digantikan oleh label continue
// Code with violations.
for (int i = 0; i < 10; i++)
{
for (int j = 0; j < 10; j++)
{
if (j == 5)
goto next;
}
next: ; // The empty statement is required; a label in C# must be followed by a statement.
}
// Fixed code.
next: for (int i = 0; i < 10; i++)
{
for (int j = 0; j < 10; j++)
{
if (j == 5)
continue next;
}
}
Pola bendera digantikan oleh label pemisah
// Code with violations.
bool found = false;
for (int i = 0; i < 10; i++)
{
for (int j = 0; j < 10; j++)
{
if (i * j > 20)
{
found = true;
break;
}
}
if (found)
break;
}
// Fixed code.
loop_i: for (int i = 0; i < 10; i++)
{
for (int j = 0; j < 10; j++)
{
if (i * j > 20)
{
break loop_i;
}
}
}
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 IDE0410
// The code that's violating the rule is on this line.
#pragma warning restore IDE0410
Untuk menonaktifkan aturan untuk file, folder, atau proyek, atur tingkat keparahannya ke none dalam file konfigurasi.
[*.cs]
dotnet_diagnostic.IDE0410.severity = none
Untuk menonaktifkan semua aturan gaya kode, atur tingkat keparahan untuk kategori Style menjadi none di dalam file konfigurasi.
[*.cs]
dotnet_analyzer_diagnostic.category-Style.severity = none
Untuk informasi selengkapnya, lihat Cara menyembunyikan peringatan analisis kode.