Share via


CA1505: Undvik ouppnåelig kod

Property Värde
Regel-ID CA1505
Rubrik Undvik ouppnåelig kod
Kategori Underhåll
Korrigeringen är icke-bakåtkompatibel Icke-icke-bryta
Standardtröskelvärde 10
Aktiverad som standard i .NET 8 Nej

Orsak

En typ, metod, fält, egenskap eller händelse har ett indexvärde med låg underhållsbarhet.

Regelbeskrivning

Regeln rapporterar en överträdelse när underhållsindexet för en typ, metod, fält, egenskap eller händelse är mindre än 10. Du kan dock konfigurera tröskelvärdet.

Underhållsindexet beräknas med hjälp av följande mått: kodrader, programvolym och cyklomatisk komplexitet. (Programvolymen är ett mått på svårigheten att förstå en typ eller metod som baseras på antalet operatorer och operander i koden. Cyklomatisk komplexitet är ett mått på den strukturella komplexiteten hos typen eller metoden. Du kan lära dig mer om kodmått i Mäta komplexitet och underhåll av hanterad kod.

Ett index för låg underhållsförmåga indikerar att en typ eller metod förmodligen är svår att underhålla och skulle vara en bra kandidat för omdesign.

Så här åtgärdar du överträdelser

Åtgärda den här överträdelsen genom att designa om typen eller metoden och försöka dela upp den i mindre och mer fokuserade typer eller metoder.

När du ska ignorera varningar

Du kan ignorera den här varningen när typen eller metoden inte kan delas upp eller anses vara underhållsbar trots dess stora storlek.

Kommentar

Du kan se falska positiva varningar från den här regeln om alla följande gäller:

  • Du använder Visual Studio 2022 version 17.5 eller senare med en äldre version av .NET SDK, dvs. .NET 6 eller tidigare.
  • Du använder analysverktygen från .NET 6 SDK eller en äldre version av analyspaketen, till exempel Microsoft.CodeAnalysis.FxCopAnalyzers.

Falska positiva identifieringar beror på en icke-bakåtkompatibel ändring i C#-kompilatorn. Överväg att använda en nyare analysator som innehåller korrigeringen för falska positiva varningar. Uppgradera till Microsoft.CodeAnalysis.NetAnalyzers version 7.0.0-preview1.22464.1 eller senare eller använd analysverktygen från .NET 7 SDK.

Ignorera en varning

Om du bara vill förhindra en enda överträdelse lägger du till förprocessordirektiv i källfilen för att inaktivera och aktiverar sedan regeln igen.

#pragma warning disable CA1505
// The code that's violating the rule is on this line.
#pragma warning restore CA1505

Om du vill inaktivera regeln för en fil, mapp eller ett projekt anger du dess allvarlighetsgrad till none i konfigurationsfilen.

[*.{cs,vb}]
dotnet_diagnostic.CA1505.severity = none

Mer information finns i Så här utelämnar du kodanalysvarningar.

Konfigurera tröskelvärde

Du kan konfigurera tröskelvärdet där den här regeln utlöses och vilka typer av symboler som ska analyseras. De tillåtna symboltyperna är:

  • Assembly
  • Namespace
  • Type
  • Method
  • Field
  • Event
  • Property
  1. Skapa en textfil med namnet CodeMetricsConfig.txt.

  2. Lägg till det önskade tröskelvärdet i textfilen i följande format:

    CA1505: 20
    

    I det här exemplet konfigureras regeln att utlösas när underhållsindexet för en typ, metod, fält, egenskap eller händelse är mindre än 20.

    CA1505(Method): 5
    CA1505(Type): 15
    

    I det här exemplet konfigureras regeln att utlösas när underhållsindexet för en metod är mindre än 5 eller om underhållsindexet för en typ är mindre än 15. Med den här konfigurationsfilen fortsätter regeln att flagga fält, egenskaper och händelser vars underhållsindex är mindre än standardtröskelvärdet (10).

  3. Markera konfigurationsfilens byggåtgärd som AdditionalFiles i projektfilen. Till exempel:

    <ItemGroup>
      <AdditionalFiles Include="CodeMetricsConfig.txt" />
    </ItemGroup>
    

Se även