Nyelv és szükségtelen szabályok
A kódstílusú nyelvi szabályok befolyásolják a .NET-programozási nyelvek különböző szerkezeteit, például a módosítókat és a zárójeleket.
Ez a kategória olyan szabályokat is tartalmaz, amelyek azonosítják a kódbázis szükségtelen részeit, és újrabontásra vagy eltávolításra kerülhetnek. A szükségtelen kód jelenléte az alábbi problémák egyikét jelzi:
- Olvashatóság: Olyan kód, amely szükségtelenül rontja az olvashatóságot.
- Karbantarthatóság: Az újrabontás után már nem használt és szükségtelenül karbantartott kód.
- Teljesítmény: Szükségtelen számítások, amelyek nincsenek mellékhatásai, és szükségtelen teljesítményterheléshez vezetnek.
- Funkció: Funkcionális probléma a kódban, amely redundánssá teszi a szükséges kódokat. Például IDE0060 nem használt paramétereket jelöl, amelyeknél a metódus véletlenül figyelmen kívül hagy egy bemeneti paramétert.
A nyelvi szabályok a következő kategóriákba sorolhatók:
- .NET-stílusszabályok: A C#-ra és a Visual Basicre egyaránt érvényes szabályok. A szabályok beállításnevei az előtaggal kezdődnek
dotnet_style_
. - C#-stílusszabályok: A C#-kódra vonatkozó szabályok. A szabályok beállításnevei az előtaggal kezdődnek
csharp_style_
. - Visual Basic stílusszabályok: A Visual Basic-kódra vonatkozó szabályok. A szabályok beállításnevei az előtaggal kezdődnek
visual_basic_style_
.
Beállításformátum
Számos nyelvi szabály rendelkezik egy vagy több társított beállítással az előnyben részesített stílus testreszabásához. Az egyszerű "használat" utasítás (IDE0063) használata például rendelkezik azzal a beállítássalcsharp_prefer_simple_using_statement
, amellyel meghatározhatja, hogy deklarációt using
vagy utasítást using
szeretne-e használni. A szabály kikényszeríti a megadott szinten kiválasztott beállításokat, például figyelmeztetést vagy hibát.
A nyelvi szabályok beállításai a következő formátumú konfigurációs fájlban adhatók meg:
option_name = value
(Visual Studio 2019 és újabb verziók)
vagy
option_name = value:severity
Érték
Minden nyelvi szabályhoz meg kell adnia egy értéket, amely meghatározza, hogy a stílust szeretné-e előnyben részesíteni. Sok szabály elfogad egy értéket (előnyben részesíti ezt a
true
stílust) vagyfalse
(nem részesíti előnyben ezt a stílust). Más szabályok elfogadják az olyan értékeket, mint awhen_on_single_line
vagynever
a .Súlyosság (nem kötelező a Visual Studio 2019 és újabb verzióiban)
A szabály második része a szabály súlyossági szintjét határozza meg. A .NET 9-es és újabb verzióiban a súlyosságot mindig figyelembe kell venni, azaz a fejlesztési azonosítókon belül és a parancssori buildek során. A .NET 8-as és korábbi verzióiban ez a súlyossági beállítás csak a fejlesztési azonosítókon belül van betartva, például a Visual Studióban, és a buildelés során nem .
Ha a .NET 8 SDK-t vagy egy korábbi verziót használ, és azt szeretné, hogy a súlyosság a buildeléskor is érvényesüljön, ezt kétféleképpen teheti meg:
- Állítsa az <AnalysisLevel> vagy
<AnalysisLevelStyle>
a tulajdonság értékét a következőre9.0
vagy magasabbra, vagy állítsa be a következőrepreview
: - A súlyosságot az elemzők szabályazonosító-alapú súlyossági konfigurációs szintaxisával állíthatja be. A szintaxis például
dotnet_diagnostic.IDE0040.severity = warning
az űrlapotdotnet_diagnostic.<rule ID>.severity = <severity>
veszi fel. További információ: súlyossági szint.
- Állítsa az <AnalysisLevel> vagy
Tipp.
A Visual Studio 2019-től kezdődően a gyorsműveletek villanykörte menüjéből konfigurálhat kódstílus-szabályokat a stílus megsértése után.
Szabályindex
A nyelvi és a szükségtelen kódszabályok további alkategóriákba vannak sorolva, például kifejezésszintű beállítások, kódblokk-beállítások és módosító beállítások.
using
direktíva-beállítások- Kódblokk beállításai
- Kifejezéssel testesített tagok
- Kifejezésszintű beállítások
- Mezőbeállítások
- Nyelvi kulcsszó és keretrendszertípusok beállításai
- Módosító beállítások
- Új sor beállításai
- Null-ellenőrzési beállítások
- Paraméterbeállítások
- Zárójelek beállításai
- Mintaegyeztetési beállítások
- Letiltási beállítások
This.
ésme.
beállításokvar
Beállítások
using
direktíva-beállítások
.NET-stílusszabályok (C# és Visual Basic):
C# stílusszabályok:
- Szükségtelen eltávolítása irányelvek használatával (IDE0005)
- "használat" irányelv elhelyezése (IDE0065)
Kódblokk beállításai
C# stílusszabályok:
- Kapcsos zárójelek hozzáadása (IDE0011)
- Egyszerű "használat" utasítás használata (IDE0063)
- Névtér deklarálási beállításai (IDE0160, IDE0161)
- Szükségtelen lambdakifejezés eltávolítása (IDE0200)
- Konvertálás legfelső szintű utasításokká (IDE0210)
- Konvertálás "Program.Main" stílusú programra (IDE0211)
- Elsődleges konstruktor használata (IDE0290)
Kifejezéssel testesített tagok
C# stílusszabályok:
- Kifejezéstörzs használata konstruktorokhoz (IDE0021)
- Kifejezéstörzs használata metódusokhoz (IDE0022)
- Kifejezéstörzs használata operátorokhoz (IDE0023, IDE0024)
- Kifejezéstörzs használata tulajdonságokhoz (IDE0025)
- Kifejezéstörzs használata indexelőkhöz (IDE0026)
- Kifejezéstörzs használata tartozékokhoz (IDE0027)
- Kifejezéstörzs használata lambdákhoz (IDE0053)
- Kifejezéstörzs használata helyi függvényekhez (IDE0061)
Kifejezésszintű beállítások
.NET-stílusszabályok (C# és Visual Basic):
- Név egyszerűsítése (IDE0001)
- Taghozzáférés egyszerűsítése (IDE0002)
- Felesleges leadás eltávolítása (IDE0004)
- Hiányzó esetek hozzáadása utasításváltáshoz (IDE0010)
- Objektum inicializálók használata (IDE0017)
- Gyűjtemény inicializálók használata (IDE0028)
- A null ellenőrzés egyszerűsíthető (IDE0029, IDE0030, IDE0270)
- Null propagálás használata (IDE0031)
- Automatikusan implementált tulajdonság használata (IDE0032)
- Explicit módon megadott név használata (IDE0033)
- Nem elérhető kód eltávolítása (IDE0035)
- Tagnevek (IDE0037) használata
- "is null" ellenőrzés használata (IDE0041)
- Feltételes kifejezés használata hozzárendeléshez (IDE0045)
- Feltételes kifejezés használata visszatéréshez (IDE0046)
- Névtelen típus konvertálása rekordra (IDE0050)
- Nem használt privát tag eltávolítása (IDE0051)
- Olvasatlan privát tag eltávolítása (IDE0052)
- Összetett hozzárendelés használata (IDE0054, IDE0074)
- Szükségtelen kifejezésérték eltávolítása (IDE0058)
- Szükségtelen érték hozzárendelésének eltávolítása (IDE0059)
- A System.HashCode.Combine (IDE0070) használata
- Az interpoláció egyszerűsítése (IDE0071)
- Feltételes kifejezés egyszerűsítése (IDE0075)
nameof
Konvertálástypeof
(IDE0082)- Szükségtelen egyenlőségi operátor eltávolítása (IDE0100)
- LINQ-kifejezés egyszerűsítése (IDE0120)
- A névtér nem egyezik a mappastruktúrával (IDE0130)
C# stílusszabályok:
- Dobókifejezés használata (IDE0016)
- Beágyazott változódeklaráció (IDE0018)
- Az "alapértelmezett" kifejezés egyszerűsítése (IDE0034)
- Helyi függvény használata lambda helyett (IDE0039)
- Változó dekonstruálásának deklarációja (IDE0042)
- Index operátor használata (IDE0056)
- Tartomány operátor használata (IDE0057)
- Hiányzó esetek hozzáadása kifejezésváltáshoz (IDE0072)
- Szükségtelen elnyomási operátor eltávolítása (IDE0080)
- Kifejezés egyszerűsítése
new
(IDE0090) - Szükségtelen elvetés eltávolítása (IDE0110)
- A "null" ellenőrzés előnyben részesítve a típusellenőrzést (IDE0150)
- Értékek felcserélése (IDE0180)
- Explicit cast hozzáadása a foreach ciklusban (IDE0220)
- UTF-8 sztringkonstans használata (IDE0230)
- A null értékű irányelv redundáns (IDE0240)
- A null értékű irányelv szükségtelen (IDE0241)
- Gyűjteménykifejezés használata tömbhöz (IDE0300)
- Gyűjteménykifejezés használata üres (IDE0301)
- Gyűjteménykifejezés használata a stack-kiosztáshoz (IDE0302)
- Gyűjteménykifejezés
Create()
használata (IDE0303) - Gyűjteménykifejezés használata a szerkesztőhöz (IDE0304
- Gyűjteménykifejezés használata fluenthez (IDE0305)
Visual Basic stílusszabályok:
- Eltávolítás
ByVal
(IDE0081) - Mintaegyeztetés (
IsNot
operátor) használata (IDE0084) - Objektumlétrehozás egyszerűsítése (IDE0140)
Mezőbeállítások
.NET-stílusszabályok (C# és Visual Basic):
Nyelvi kulcsszó és keretrendszertípusok beállításai
.NET-stílusszabályok (C# és Visual Basic):
Módosító beállítások
.NET-stílusszabályok (C# és Visual Basic):
C# stílusszabályok:
- Helyi függvény statikussá tétele (IDE0062)
- Strukturált mezők írhatóvá tétele (IDE0064)
- A szerkezet "olvashatóan" készíthető (IDE0250)
- A tag "olvasható" (IDE0251)
Új sor beállításai
- Több üres sor engedélyezése (IDE2000)
- Beágyazott utasítások engedélyezése ugyanazon a sorban (IDE2001)
- Egymást követő kapcsos zárójelek közötti üres sorok engedélyezése (IDE2002)
- Az utasítás engedélyezése közvetlenül a blokk után (IDE2003)
- Üres sor engedélyezése kettőspont után a konstruktor inicializálójában (IDE2004)
- Üres sor engedélyezése jogkivonat után a feltételes kifejezésben (IDE2005)
- Üres sor engedélyezése a token után a nyílkifejezésben (IDE2006)
Null-ellenőrzési beállítások
C# stílusszabályok:
Paraméterbeállítások
.NET-stílusszabályok (C# és Visual Basic):
Zárójelek beállításai
.NET-stílusszabályok (C# és Visual Basic):
Mintaegyeztetési beállítások
C# stílusszabályok:
- Használjon mintaegyezést az "as" és a "null" ellenőrzés elkerüléséhez (IDE0019)
- Mintaegyezés használata az "is" ellenőrzés és a leadás (IDE0020, IDE0038) elkerüléséhez
- Kapcsolókifejezés használata (IDE0066)
- Mintaegyezés használata (IDE0078 és IDE0260)
- Mintaegyeztetés (
not
operátor) használata (IDE0083) - Tulajdonságminta egyszerűsítése (IDE0170)
Letiltási beállítások
.NET-stílusszabályok (C# és Visual Basic):
This.
és me.
beállítások
.NET-stílusszabályok (C# és Visual Basic):
var
Beállítások
C# stílusszabályok: