Dela via


Språk och onödiga regler

Språkregler i kodstil påverkar hur olika konstruktioner av .NET programmeringsspråk, till exempel modifierare och parenteser, används.

Den här kategorin innehåller även regler som identifierar delar av kodbasen som är onödiga och kan omstruktureras eller tas bort. Förekomsten av onödig kod indikerar ett eller flera av följande problem:

  • Läsbarhet: Kod som i onödan försämrar läsbarheten.
  • Underhåll: Kod som inte längre används efter refaktorisering och underhålls i onödan.
  • Prestanda: Onödig beräkning som inte har några biverkningar och leder till onödiga prestandakostnader.
  • Funktioner: Funktionsproblem i kod som gör nödvändig kod redundant. Till exempel IDE0060 flaggar oanvända parametrar där metoden av misstag ignorerar en indataparameter.

Språkreglerna är indelade i följande kategorier:

  • .NET formatregler: Regler som gäller för både C# och Visual Basic. Alternativnamnen för dessa regler börjar med prefixet dotnet_style_.
  • C#-formatregler: Regler som är specifika för C#-kod. Alternativnamnen för dessa regler börjar med prefixet csharp_style_.
  • Visual Basic formatregler: Regler som är specifika för Visual Basic kod. Alternativnamnen för dessa regler börjar med prefixet visual_basic_style_.

Alternativformat

Många av språkreglerna har ett eller flera associerade alternativ för att anpassa önskat format. Använd till exempel enkel "using"-instruktion (IDE0063) har det associerade alternativet csharp_prefer_simple_using_statement som gör att du kan definiera om du föredrar en using deklaration eller en using instruktion. Regeln tillämpar de alternativ som du väljer på en angiven nivå, till exempel varning eller fel.

Alternativ för språkregler kan anges i en konfigurationsfil med följande format:

option_name = value (Visual Studio 2019 och senare)

eller

option_name = value:severity

  • Värde

    För varje språkregel anger du ett värde som definierar om eller när formatmallen ska föredras. Många regler accepterar värdet true (föredrar det här formatet) eller false (föredrar inte det här formatet). Andra regler accepterar värden som when_on_single_line eller never.

  • Severity (valfritt i Visual Studio 2019 och senare versioner)

    Den andra delen av regeln anger allvarlighetsgraden för regeln. I .NET 9 och senare versioner respekteras alltid allvarlighetsgraden – det vill säga: i utvecklingsmiljöer och under kommandoradsbyggen. I .NET 8 och tidigare versioner respekteras den här allvarlighetsgraden endast i utvecklings-ID:er, till exempel Visual Studio och not under bygget.

    Om du använder .NET 8 SDK eller en tidigare version och vill att allvarlighetsgraden ska respekteras vid bygget kan du göra det på något av två sätt:

    • Ange egenskapen <AnalysisLevel> eller <AnalysisLevelStyle> till 9.0 eller högre, eller till preview.
    • Ange allvarlighetsgraden med hjälp av den regel-ID-baserade allvarlighetsgradskonfigurationssyntaxen för analysverktyg i stället. Syntaxen har formatet dotnet_diagnostic.<rule ID>.severity = <severity>, till exempel dotnet_diagnostic.IDE0040.severity = warning. Mer information finns i allvarlighetsgrad.

Tips

Från och med Visual Studio 2019 kan du konfigurera regler för kodformat från menyn Snabba åtgärder när en stilregel bryts.

Regelindex

Språkregler och onödiga kodregler kategoriseras ytterligare i underkategorier, till exempel inställningar på uttrycksnivå, inställningar för kodblock och modifierare.

using direktivpreferenser

.NET formatregler (C# och Visual Basic):

C#-formatregler:

Inställningar för kodblock

C#-formatregler:

Uttrycksbaserade medlemmar

C#-formatregler:

Inställningar på uttrycksnivå

.NET formatregler (C# och Visual Basic):

C#-formatregler:

Visual Basic formatregler:

Fältinställningar

.NET formatregler (C# och Visual Basic):

Språknyckelord jämfört med inställningar för ramverkstyper

.NET formatregler (C# och Visual Basic):

Inställningar för modifierare

.NET formatregler (C# och Visual Basic):

C#-formatregler:

Inställningar för ny rad

.NET formatregler (C# och Visual Basic):

C#-formatregler:

†De här reglerna är experimentella och kan komma att ändras eller tas bort.

Inställningar för null-kontroll

C#-formatregler:

Parameterinställningar

.NET formatregler (C# och Visual Basic):

Parentesinställningar

.NET formatregler (C# och Visual Basic):

Mönstermatchningsinställningar

C#-formatregler:

Inställningar för undertryckning

.NET formatregler (C# och Visual Basic):

C#-formatregler:

This. och me. inställningar

.NET formatregler (C# och Visual Basic):

var inställningar

C#-formatregler:

Se även