Taal en onnodige regels
Taalregels in codestijl zijn van invloed op de manier waarop verschillende constructies van .NET-programmeertalen, zoals modifiers en haakjes, worden gebruikt.
Deze categorie bevat ook regels waarmee onderdelen van de codebasis worden geïdentificeerd die niet nodig zijn en kunnen worden geherstructureerd of verwijderd. De aanwezigheid van onnodige code geeft een van de volgende problemen aan:
- Leesbaarheid: Code die onnodig de leesbaarheid verslechtert.
- Onderhoudbaarheid: code die niet meer wordt gebruikt na het herstructureren en onnodig wordt onderhouden.
- Prestaties: onnodige berekeningen die geen neveneffecten hebben en leiden tot onnodige prestatieoverhead.
- Functionaliteit: Functioneel probleem in code waarmee vereiste code redundant wordt. IDE0060 bijvoorbeeld ongebruikte parameters markeert, waarbij de methode per ongeluk een invoerparameter negeert.
De taalregels vallen in de volgende categorieën:
- .NET-stijlregels: regels die van toepassing zijn op zowel C# als Visual Basic. De optienamen voor deze regels beginnen met het voorvoegsel
dotnet_style_
. - Regels voor C#-stijl: regels die specifiek zijn voor C#-code. De optienamen voor deze regels beginnen met het voorvoegsel
csharp_style_
. - Visual Basic-stijlregels: regels die specifiek zijn voor Visual Basic-code. De optienamen voor deze regels beginnen met het voorvoegsel
visual_basic_style_
.
Optie-indeling
Veel van de taalregels hebben een of meer gekoppelde opties om de voorkeursstijl aan te passen. Gebruik bijvoorbeeld een eenvoudige instructie 'using' (IDE0063) met de bijbehorende optie csharp_prefer_simple_using_statement
waarmee u kunt definiëren of u liever een using
declaratie of een using
instructie gebruikt. De regel dwingt af welke opties u op een opgegeven niveau kiest, bijvoorbeeld waarschuwing of fout.
Opties voor taalregels kunnen worden opgegeven in een configuratiebestand met de volgende indeling:
option_name = value
(Visual Studio 2019 en hoger)
or
option_name = value:severity
Value
Voor elke taalregel geeft u een waarde op die definieert of of of wanneer u de stijl wilt gebruiken. Veel regels accepteren een waarde van
true
(geef de voorkeur aan deze stijl) offalse
(geef deze stijl niet de voorkeur). Andere regels accepteren waarden zoalswhen_on_single_line
ofnever
.Ernst (optioneel in Visual Studio 2019 en latere versies)
In het tweede deel van de regel wordt het ernstniveau voor de regel opgegeven. In .NET 9 en latere versies wordt de ernst altijd gerespecteerd, dat wil gezegd, binnen ontwikkelings-IDE's en tijdens opdrachtregelversies. In .NET 8 en eerdere versies wordt deze ernst-instelling alleen gerespecteerd binnen ontwikkelings-ID's, zoals Visual Studio, en niet tijdens de build.
Als u de .NET 8 SDK of een eerdere versie gebruikt en u wilt dat de ernst tijdens het bouwen wordt gerespecteerd, kunt u dit op twee manieren doen:
- Stel analysisLevel ><of
<AnalysisLevelStyle>
eigenschap in op9.0
of hoger of op.preview
- Stel de ernst in met behulp van de configuratiesyntaxis voor ernst op basis van regel-id's voor analysen. De syntaxis heeft bijvoorbeeld de vorm
dotnet_diagnostic.<rule ID>.severity = <severity>
dotnet_diagnostic.IDE0040.severity = warning
. Zie ernstniveau voor meer informatie.
- Stel analysisLevel ><of
Tip
Vanaf Visual Studio 2019 kunt u codestijlregels configureren vanuit het menu Snelle acties gloeilamp nadat er een schending van de stijl is opgetreden.
Regelindex
Taal- en onnodige coderegels worden verder onderverdeeld in subcategorieën, zoals voorkeuren op expressieniveau, voorkeuren voor codeblokken en wijzigingsvoorkeuren.
using
richtlijnvoorkeuren- Voorkeuren voor codeblok
- Expressie-bodyied leden
- Voorkeuren op expressieniveau
- Veldvoorkeuren
- Taalwoord versus voorkeuren voor frameworktypen
- Aanpassingsvoorkeuren
- Voorkeuren voor nieuwe regels
- Voorkeuren voor null-controle
- Parametervoorkeuren
- Voorkeuren voor haakjes
- Voorkeuren voor patroonkoppeling
- Onderdrukkingsvoorkeuren
This.
enme.
voorkeurenvar
Voorkeuren
using
richtlijnvoorkeuren
.NET-stijlregels (C# en Visual Basic):
C#-stijlregels:
Voorkeuren voor codeblok
C#-stijlregels:
- Accolades toevoegen (IDE0011)
- Eenvoudige instructie 'using' (IDE0063) gebruiken
- Voorkeuren voor naamruimtedeclaratie (IDE0160, IDE0161)
- Overbodige lambda-expressie verwijderen (IDE0200)
- Converteren naar instructies op het hoogste niveau (IDE0210)
- Converteren naar het stijlprogramma Program.Main (IDE0211)
- Primaire constructor (IDE0290) gebruiken
Expressie-bodyied leden
C#-stijlregels:
- Expressietekst gebruiken voor constructors (IDE0021)
- Expressietekst gebruiken voor methoden (IDE0022)
- Expressietekst gebruiken voor operators (IDE0023, IDE0024)
- Expressietekst gebruiken voor eigenschappen (IDE0025)
- Expressietekst gebruiken voor indexeerfuncties (IDE0026)
- Expressietekst gebruiken voor accessors (IDE0027)
- Expressietekst gebruiken voor lambdas (IDE0053)
- Expressietekst gebruiken voor lokale functies (IDE0061)
Voorkeuren op expressieniveau
.NET-stijlregels (C# en Visual Basic):
- Naam vereenvoudigen (IDE0001)
- Toegang tot leden vereenvoudigen (IDE0002)
- Overbodige cast verwijderen (IDE0004)
- Ontbrekende cases toevoegen om van instructie te wisselen (IDE0010)
- Object-initialisatiefuncties gebruiken (IDE0017)
- Initialisatieprogramma's voor verzamelingen gebruiken (IDE0028)
- Null-controle kan worden vereenvoudigd (IDE0029, IDE0030, IDE0270)
- Null-doorgifte gebruiken (IDE0031)
- Automatisch geïmplementeerde eigenschap (IDE0032) gebruiken
- Expliciet opgegeven tuple-naam gebruiken (IDE0033)
- Onbereikbare code verwijderen (IDE0035)
- Uitgestelde lidnamen (IDE0037) gebruiken
- De controle 'is null' gebruiken (IDE0041)
- Voorwaardelijke expressie gebruiken voor toewijzing (IDE0045)
- Voorwaardelijke expressie gebruiken voor retourneren (IDE0046)
- Anoniem type converteren naar tuple (IDE0050)
- Ongebruikt privélid verwijderen (IDE0051)
- Ongelezen privélid verwijderen (IDE0052)
- Samengestelde toewijzing gebruiken (IDE0054, IDE0074)
- Overbodige expressiewaarde verwijderen (IDE0058)
- Overbodige waardetoewijzing verwijderen (IDE0059)
- System.HashCode.Combine gebruiken (IDE0070)
- Interpolatie vereenvoudigen (IDE0071)
- Voorwaardelijke expressie vereenvoudigen (IDE0075)
- Converteren
typeof
naarnameof
(IDE0082) - Verwijder onnodige gelijkheidsoperator (IDE0100)
- LINQ-expressie vereenvoudigen (IDE0120)
- Naamruimte komt niet overeen met mapstructuur (IDE0130)
C#-stijlregels:
- Throw-expressie (IDE0016) gebruiken
- Declaratie van inlinevariabele (IDE0018)
- De expressie 'standaard' vereenvoudigen (IDE0034)
- Lokale functie gebruiken in plaats van lambda (IDE0039)
- Declaratie van variabelen ongedaan maken (IDE0042)
- Indexoperator gebruiken (IDE0056)
- Bereikoperator (IDE0057) gebruiken
- Ontbrekende gevallen toevoegen om van expressie te wisselen (IDE0072)
- Verwijder onnodige onderdrukkingsoperator (IDE0080)
- Expressie vereenvoudigen
new
(IDE0090) - Onnodig verwijderen (IDE0110)
- Geef de voorkeur aan null-controle over typecontrole (IDE0150)
- Tuple gebruiken om waarden te wisselen (IDE0180)
- Expliciete cast toevoegen in foreach-lus (IDE0220)
- Letterlijke UTF-8-tekenreeks (IDE0230) gebruiken
- Nullable directive is redundant (IDE0240)
- Nullable directive is onnodig (IDE0241)
- Verzamelingsexpressie gebruiken voor matrix (IDE0300)
- Verzamelingsexpressie gebruiken voor leeg (IDE0301)
- Verzamelingsexpressie gebruiken voor stack-alloc (IDE0302)
- Verzamelingsexpressie gebruiken voor
Create()
(IDE0303) - Verzamelingsexpressie gebruiken voor opbouwfunctie (IDE0304
- Verzamelingsexpressie gebruiken voor fluent (IDE0305)
Stijlregels voor Visual Basic:
- Verwijderen
ByVal
(IDE0081) - Patroonkoppeling (
IsNot
operator) gebruiken (IDE0084) - Het maken van objecten vereenvoudigen (IDE0140)
Veldvoorkeuren
.NET-stijlregels (C# en Visual Basic):
Taalwoord versus voorkeuren voor frameworktypen
.NET-stijlregels (C# en Visual Basic):
Aanpassingsvoorkeuren
.NET-stijlregels (C# en Visual Basic):
C#-stijlregels:
- Lokale functie statisch maken (IDE0062)
- Schrijfbare structvelden maken (IDE0064)
- Struct kan 'readonly' (IDE0250) worden gemaakt
- Lid kan 'readonly' (IDE0251) worden gemaakt
Voorkeuren voor nieuwe regels
- Meerdere lege regels toestaan (IDE2000)
- Ingesloten instructies op dezelfde regel toestaan (IDE2001)
- Lege regels tussen opeenvolgende accolades toestaan (IDE2002)
- Instructie toestaan direct na blok (IDE2003)
- Lege regel toestaan na dubbele punt in initialisatiefunctie voor constructor (IDE2004)
- Lege regel na token toestaan in voorwaardelijke expressie (IDE2005)
- Lege regel na token toestaan in pijlexpressie (IDE2006)
Voorkeuren voor null-controle
C#-stijlregels:
Parametervoorkeuren
.NET-stijlregels (C# en Visual Basic):
Voorkeuren voor haakjes
.NET-stijlregels (C# en Visual Basic):
Voorkeuren voor patroonkoppeling
C#-stijlregels:
- Patroonkoppeling gebruiken om 'as' te voorkomen, gevolgd door een null-controle (IDE0019)
- Patroonkoppeling gebruiken om 'is'-controle te voorkomen, gevolgd door een cast (IDE0020, IDE0038)
- Schakelexpressie (IDE0066) gebruiken
- Patroonkoppeling gebruiken (IDE0078 en IDE0260)
- Patroonkoppeling (
not
operator) gebruiken (IDE0083) - Eigenschapspatroon vereenvoudigen (IDE0170)
Onderdrukkingsvoorkeuren
.NET-stijlregels (C# en Visual Basic):
This.
en me.
voorkeuren
.NET-stijlregels (C# en Visual Basic):
var
Voorkeuren
C#-stijlregels: