Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
| Vlastnictví | Value |
|---|---|
| Identifikátor pravidla | IDE0410 |
| Titul | Použití příkazu jump s popiskem |
| Category | Style |
| Podkategorie | Jazyková pravidla (předvolby bloku kódu) |
| Příslušné jazyky | C# 15+ |
| Možnosti | csharp_style_prefer_labeled_jump_statements |
Přehled
Pro jasnější a stručnější řízení toku vnořených smyček toto pravidlo označí kód, který používá příkazy goto nebo vzory s logickými příznaky k opuštění vnořených smyček nebo k pokračování v nich, pokud lze místo toho použít pojmenovaný příkaz break nebo continue (C# 15+).
Pravidlo rozpozná následující vzory:
- Příkaz
goto, který přeskočí na popisek bezprostředně za vnořenou smyčkou, kterou lze nahraditbreak <label>. - Příkaz
goto, který skočí na prázdné návěští na konci těla smyčky (což fakticky znamená pokračování vnější smyčky), lze nahradit příkazemcontinue <label>. - Schéma s logickým příznakem, kdy je proměnná příznaku nastavena na
truea poté je kontrolována na každé úrovni smyčky, aby se příkaz break nebo continue přenesl směrem ven přes vnořené smyčky, přičemž toto schéma lze nahradit jediným označenýmbreak <label>nebocontinue <label>.
Možnosti
Možnosti určují chování, které má pravidlo vynutit. Informace o konfiguraci možností naleznete v tématu Formát možností.
csharp_style_upřednostňovat_pojmenované_příkazy_skoku
| Vlastnictví | Value | Description |
|---|---|---|
| Název možnosti | csharp_style_prefer_labeled_jump_statements | |
| Hodnoty možností | true |
Preferovat příkazy pro přeskakování s popisky |
false |
Zakáže pravidlo. | |
| Výchozí hodnota možnosti | true |
Example
Následující příklady ukazují tři vzory, které toto pravidlo rozpozná:
goto nahrazeno návěštím 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 nahrazeno popiskem 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;
}
}
Vzor příznaku nahrazen popiskem přerušení
// 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;
}
}
}
Potlačení upozornění
Pokud chcete potlačit pouze jedno porušení, přidejte do zdrojového souboru direktivy preprocesoru, abyste pravidlo zakázali a znovu povolili.
#pragma warning disable IDE0410
// The code that's violating the rule is on this line.
#pragma warning restore IDE0410
Chcete-li pravidlo pro soubor, složku nebo projekt zakázat, nastavte jeho závažnost na none v konfiguračním souboru .
[*.cs]
dotnet_diagnostic.IDE0410.severity = none
Pokud chcete zakázat všechna pravidla stylu kódu, nastavte závažnost pro kategorii Style na none v konfiguračním souboru.
[*.cs]
dotnet_analyzer_diagnostic.category-Style.severity = none
Další informace naleznete v tématu Jak potlačit upozornění analýzy kódu.