Jazyk a nepotřebná pravidla
Pravidla jazyka ve stylu kódu ovlivňují způsob použití různých konstruktorů programovacích jazyků .NET, například modifikátorů a závorek.
Tato kategorie obsahuje také pravidla, která identifikují části základu kódu, které nejsou nutné a které je možné refaktorovat nebo odebrat. Přítomnost nepotřebného kódu značí jeden nebo několik následujících problémů:
- Čitelnost: Kód, který zbytečně snižuje čitelnost.
- Udržovatelnost: Kód, který se už po refaktoringu nepoužívá a zbytečně se udržuje.
- Výkon: Nepotřebné výpočty, které nemají žádné vedlejší účinky a vedou k zbytečným režijním nákladům na výkon.
- Funkce: Funkční problém v kódu, který zpřístupňuje požadovaný kód jako redundantní. Například IDE0060 označí nepoužívané parametry, kde metoda omylem ignoruje vstupní parametr.
Jazyková pravidla spadají do následujících kategorií:
- Pravidla stylu .NET: Pravidla, která platí pro jazyk C# i Visual Basic. Názvy možností pro tato pravidla začínají předponou
dotnet_style_
. - Pravidla stylu jazyka C#: Pravidla specifická pro kód jazyka C#. Názvy možností pro tato pravidla začínají předponou
csharp_style_
. - Pravidla stylu jazyka Visual Basic: Pravidla specifická pro kód jazyka Visual Basic. Názvy možností pro tato pravidla začínají předponou
visual_basic_style_
.
Formát možnosti
Mnoho pravidel jazyka má jednu nebo více přidružených možností pro přizpůsobení upřednostňovaného stylu. Například Použití jednoduchého příkazu using (IDE0063) má přidruženou možnostcsharp_prefer_simple_using_statement
, která umožňuje definovat, jestli dáváte přednost using
deklaraci nebo using
příkazu. Pravidlo vynucuje možnosti, které zvolíte na zadané úrovni, například upozornění nebo chyba.
Možnosti jazykových pravidel lze zadat v konfiguračním souboru s následujícím formátem:
option_name = value
(Visual Studio 2019 a novější)
nebo
option_name = value:severity
Hodnota
Pro každé pravidlo jazyka zadáte hodnotu, která definuje, jestli nebo kdy se má styl preferovat. Mnoho pravidel přijímá hodnotu
true
(upřednostňujte tento styl) nebofalse
(nepoužívejte tento styl). Jiná pravidla přijímají hodnoty, napříkladwhen_on_single_line
nebonever
.Závažnost (volitelné v sadě Visual Studio 2019 a novějších verzích)
Druhá část pravidla určuje úroveň závažnosti pravidla. V .NET 9 a novějších verzích se závažnost vždy respektuje – to znamená uvnitř vývojových prostředí ID a během sestavení příkazového řádku. V .NET 8 a starších verzích se toto nastavení závažnosti respektuje pouze v prostředích ID vývoje, jako je Visual Studio, a ne během sestavování.
Pokud používáte sadu .NET 8 SDK nebo starší verzi a chcete, aby se závažnost v době sestavení respektovala, můžete to udělat jedním ze dvou způsobů:
- <Nastavte vlastnost AnalysisLevel> nebo
<AnalysisLevelStyle>
na9.0
hodnotu vyšší nebo napreview
hodnotu . - Místo toho nastavte závažnost pomocí syntaxe konfigurace závažnosti založené na ID pravidla pro analyzátory. Syntaxe má například
dotnet_diagnostic.IDE0040.severity = warning
tvardotnet_diagnostic.<rule ID>.severity = <severity>
. Další informace najdete v tématu Úroveň závažnosti.
- <Nastavte vlastnost AnalysisLevel> nebo
Tip
Počínaje sadou Visual Studio 2019 můžete nakonfigurovat pravidla stylu kódu z nabídky Žárovka Rychlých akcí po porušení stylu.
Index pravidla
Jazyková a nepotřebná pravidla kódu jsou dále kategorizována do podkategorií, jako jsou předvolby na úrovni výrazů, předvolby bloku kódu a předvolby modifikátoru.
using
předvolby direktiv- Předvolby bloku kódu
- Členové tvoření výrazy
- Předvolby na úrovni výrazů
- Předvolby polí
- Klíčová slova jazyka vs. předvolby typů rozhraní
- Modifikační předvolby
- Předvolby nového řádku
- Předvolby kontroly null
- Předvolby parametrů
- Předvolby závorek
- Předvolby porovnávání vzorů
- Předvolby potlačení
This.
ame.
předvolbyvar
možnosti
using
předvolby direktiv
Pravidla stylu .NET (C# a Visual Basic):
Pravidla stylu jazyka C#:
Předvolby bloku kódu
Pravidla stylu jazyka C#:
- Přidání složených závorek (IDE0011)
- Použití jednoduchého příkazu using (IDE0063)
- Předvolby deklarace oboru názvů (IDE0160, IDE0161)
- Odebrání nepotřebného výrazu lambda (IDE0200)
- Převod na příkazy nejvyšší úrovně (IDE0210)
- Převést na program stylu Program.Main (IDE0211)
- Použití primárního konstruktoru (IDE0290)
- Preferovat System.Threading.Lock (IDE0330)
Členové tvoření výrazy
Pravidla stylu jazyka C#:
- Použití textu výrazu pro konstruktory (IDE0021)
- Použití textu výrazu pro metody (IDE0022)
- Použití textu výrazu pro operátory (IDE0023, IDE0024)
- Použití textu výrazu pro vlastnosti (IDE0025)
- Použití textu výrazu pro indexery (IDE0026)
- Použití textu výrazu pro přístupové objekty (IDE0027)
- Použití textu výrazu pro lambda (IDE0053)
- Použití textu výrazu pro místní funkce (IDE0061)
Předvolby na úrovni výrazů
Pravidla stylu .NET (C# a Visual Basic):
- Zjednodušení názvu (IDE0001)
- Zjednodušení přístupu členů (IDE0002)
- Odebrání nepotřebného přetypování (IDE0004)
- Přidání chybějících případů do příkazu switch (IDE0010)
- Použití inicializátorů objektů (IDE0017)
- Použití inicializátorů kolekce (IDE0028)
- Kontrola null může být zjednodušená (IDE0029, IDE0030, IDE0270)
- Použití šíření null (IDE0031)
- Použití automaticky implementované vlastnosti (IDE0032)
- Použití explicitně zadaného názvu řazené kolekce členů (IDE0033)
- Odebrání nedostupného kódu (IDE0035)
- Použití odvozených názvů členů (IDE0037)
- Použití kontroly is null (IDE0041)
- Použití podmíněného výrazu pro přiřazení (IDE0045)
- Použití podmíněného výrazu pro vrácení (IDE0046)
- Převod anonymního typu na řazenou kolekci členů (IDE0050)
- Odebrání nepoužívaného soukromého člena (IDE0051)
- Odebrání nepřečteného soukromého člena (IDE0052)
- Použití složeného přiřazení (IDE0054, IDE0074)
- Odebrání nepotřebné hodnoty výrazu (IDE0058)
- Odebrání nepotřebného přiřazení hodnoty (IDE0059)
- Použití System.HashCode.Combine (IDE0070)
- Zjednodušení interpolace (IDE0071)
- Zjednodušení podmíněného výrazu (IDE0075)
- Převést
typeof
nanameof
(IDE0082) - Odebrání nepotřebného operátoru rovnosti (IDE0100)
- Zjednodušení výrazu LINQ (IDE0120)
- Obor názvů neodpovídá struktuře složek (IDE0130)
Pravidla stylu jazyka C#:
- Použití výrazu throw (IDE0016)
- Deklarace vložené proměnné (IDE0018)
- Zjednodušení výchozího výrazu (IDE0034)
- Místo lambda (IDE0039) použijte místní funkci.
- Deklarace dekonstrukční proměnné (IDE0042)
- Použití operátoru indexu (IDE0056)
- Použití operátoru rozsahu (IDE0057)
- Přidání chybějících případů do výrazu switch (IDE0072)
- Odebrání nepotřebného operátoru potlačení (IDE0080)
- Zjednodušení
new
výrazu (IDE0090) - Odebrání nepotřebných zahození (IDE0110)
- Upřednostnit kontrolu typu null (IDE0150)
- Prohození hodnot pomocí řazené kolekce členů (IDE0180)
- Přidání explicitního přetypování ve smyčce foreach (IDE0220)
- Použití řetězcového literálu UTF-8 (IDE0230)
- Direktiva s možnou hodnotou null je redundantní (IDE0240)
- Direktiva s možnou hodnotou null není nutná (IDE0241)
- Použití výrazu kolekce pro pole (IDE0300)
- Použití výrazu kolekce pro prázdné (IDE0301)
- Použití výrazu kolekce pro alloc zásobníku (IDE0302)
- Použití výrazu kolekce pro
Create()
(IDE0303) - Použití výrazu kolekce pro tvůrce (IDE0304
- Použití výrazu kolekce pro fluent (IDE0305)
Pravidla stylu jazyka Visual Basic:
- Odebrat
ByVal
(IDE0081) - Použití porovnávání vzorů (
IsNot
operátor) (IDE0084) - Zjednodušení vytváření objektů (IDE0140)
Předvolby polí
Pravidla stylu .NET (C# a Visual Basic):
Klíčová slova jazyka vs. předvolby typů rozhraní
Pravidla stylu .NET (C# a Visual Basic):
Předvolby modifikátorů
Pravidla stylu .NET (C# a Visual Basic):
Pravidla stylu jazyka C#:
- Nastavení místní funkce jako statické (IDE0062)
- Vytváření zapisovatelných polí struktury (IDE0064)
- Strukturu lze provést jen pro čtení (IDE0250)
- Člen může být "jen pro čtení" (IDE0251)
- Nastavení anonymní funkce jako statické (IDE0320)
Předvolby nového řádku
- Povolit více prázdných řádků (IDE2000)
- Povolit vložené příkazy na stejném řádku (IDE2001)
- Povolit prázdné řádky mezi po sobě jdoucími složenými závorkami (IDE2002)
- Příkaz Allow ihned po bloku (IDE2003)
- Povolit prázdný řádek za dvojtečku v inicializátoru konstruktoru (IDE2004)
- Povolit prázdný řádek za tokenem v podmíněném výrazu (IDE2005)
- Povolit prázdný řádek za tokenem ve výrazu šipky (IDE2006)
Předvolby kontrol hodnoty null
Pravidla stylu jazyka C#:
Předvolby parametrů
Pravidla stylu .NET (C# a Visual Basic):
Předvolby závorek
Pravidla stylu .NET (C# a Visual Basic):
Předvolby porovnávání vzorů
Pravidla stylu jazyka C#:
- Použití porovnávání vzorů, abyste se vyhnuli kontrole null (IDE0019).
- Použití porovnávání vzorů, abyste se vyhnuli kontrole "is" následovanou přetypováním (IDE0020, IDE0038)
- Použití výrazu switch (IDE0066)
- Použití porovnávání vzorů (IDE0078 a IDE0260)
- Použití porovnávání vzorů (
not
operátor) (IDE0083) - Zjednodušení vzoru vlastností (IDE0170)
Předvolby potlačení
Pravidla stylu .NET (C# a Visual Basic):
This.
a me.
předvolby
Pravidla stylu .NET (C# a Visual Basic):
var
možnosti
Pravidla stylu jazyka C#: