CA1505: evitare codice non manutenibile
Proprietà | valore |
---|---|
ID regola | CA1505 |
Titolo | Evitare codice non gestibile |
Categoria | Gestibilità |
Correzione che causa un'interruzione o un'interruzione | Nessuna interruzione |
Soglia predefinita | 10 |
Abilitato per impostazione predefinita in .NET 8 | No |
Causa
Un tipo, un metodo, un campo, una proprietà o un evento ha un valore di indice di manutenibilità basso.
Descrizione regola
La regola segnala una violazione quando l'indice di gestibilità di un tipo, un metodo, un campo, una proprietà o un evento è minore di 10. Tuttavia, è possibile configurare la soglia.
L'indice di gestibilità viene calcolato usando le metriche seguenti: righe di codice, volume del programma e complessità ciclomatica. Il volume del programma è una misura della difficoltà di comprensione di un tipo o di un metodo basato sul numero di operatori e operandi nel codice. La complessità ciclomatica è una misura della complessità strutturale del tipo o del metodo. Per altre informazioni sulle metriche del codice, vedere Misurare la complessità e la gestibilità del codice gestito.
Un indice di manutenibilità basso indica che un tipo o un metodo è probabilmente difficile da gestire e sarebbe un buon candidato per la riprogettazione.
Come correggere le violazioni
Per correggere questa violazione, riprogettare il tipo o il metodo e provare a suddividerlo in tipi o metodi più piccoli e più mirati.
Quando eliminare gli avvisi
È possibile eliminare questo avviso quando il tipo o il metodo non può essere diviso o è considerato gestibile nonostante le dimensioni elevate.
Nota
Se si applicano tutti gli avvisi seguenti, è possibile che vengano visualizzati avvisi falsi positivi da questa regola:
- Si usa Visual Studio 2022 versione 17.5 o successiva con una versione precedente di .NET SDK, ovvero .NET 6 o versioni precedenti.
- Si usano gli analizzatori di .NET 6 SDK o una versione precedente dei pacchetti analizzatori, ad esempio Microsoft.CodeAnalysis.FxCopAnalyzers.
I falsi positivi sono dovuti a una modifica che causa un'interruzione nel compilatore C#. Prendere in considerazione l'uso di un analizzatore più recente che contiene la correzione per gli avvisi falsi positivi. Eseguire l'aggiornamento a Microsoft.CodeAnalysis.NetAnalyzers versione 7.0.0-preview1.22464.1 o successiva o usare gli analizzatori di .NET 7 SDK.
Eliminare un avviso
Se si vuole eliminare una singola violazione, aggiungere direttive del preprocessore al file di origine per disabilitare e quindi riabilitare la regola.
#pragma warning disable CA1505
// The code that's violating the rule is on this line.
#pragma warning restore CA1505
Per disabilitare la regola per un file, una cartella o un progetto, impostarne la gravità none
su nel file di configurazione.
[*.{cs,vb}]
dotnet_diagnostic.CA1505.severity = none
Per altre informazioni, vedere Come eliminare gli avvisi di analisi del codice.
Configurare la soglia
È possibile configurare la soglia in corrispondenza della quale viene attivata questa regola e i tipi di simboli da analizzare. I tipi di simboli consentiti sono:
Assembly
Namespace
Type
Method
Field
Event
Property
Creare un file di testo denominato CodeMetricsConfig.txt.
Aggiungere la soglia desiderata al file di testo nel formato seguente:
CA1505: 20
In questo esempio la regola viene configurata per l'avvio quando l'indice di gestibilità di un tipo, un metodo, un campo, una proprietà o un evento è minore di 20.
CA1505(Method): 5 CA1505(Type): 15
In questo esempio la regola viene configurata per l'avvio quando l'indice di gestibilità di un metodo è minore di 5 o l'indice di gestibilità di un tipo è minore di 15. Con questo file di configurazione, la regola continuerà a contrassegnare campi, proprietà ed eventi il cui indice di gestibilità è inferiore alla soglia predefinita (10).
Nel file di progetto contrassegnare l'azione di compilazione del file di configurazione come AdditionalFiles. Ad esempio:
<ItemGroup> <AdditionalFiles Include="CodeMetricsConfig.txt" /> </ItemGroup>