Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
| Value | |
|---|---|
| ID della regola | CA2263 |
| Titolo | Preferire l'overload generico quando il tipo è noto |
| Categoria | Utilizzo |
| La correzione causa un'interruzione o meno | Non-breaking |
| Abilitato per impostazione predefinita in .NET 10 | Come suggerimento |
Motivo
Un overload del metodo che accetta un System.Type argomento viene chiamato quando il tipo è noto in fase di compilazione e è disponibile un overload generico appropriato.
Descrizione regola
Gli overload generici sono preferibili agli overload che accettano un argomento di tipo System.Type quando il tipo è noto in fase di compilazione (usando l'operatore typeof in C# o l'operatore GetType in Visual Basic). Gli overload generici promuovono codice più pulito e più indipendente dai tipi con controlli in fase di compilazione migliorati.
Come correggere le violazioni
Per correggere una violazione di questa regola, usare l'overload generico appropriato.
Example
Il frammento di codice seguente mostra una violazione di CA2263:
int size = Marshal.SizeOf(typeof(bool));
Dim size As Integer = Marshal.SizeOf(GetType(Boolean))
Il frammento di codice seguente corregge la violazione:
int size = Marshal.SizeOf<bool>();
Dim size As Integer = Marshal.SizeOf(Of Boolean)()
Quando eliminare gli avvisi
È sicuro eliminare un avviso da questa regola; Tuttavia, è consigliabile usare un overload generico, se possibile.
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 CA2263
// The code that's violating the rule is on this line.
#pragma warning restore CA2263
Per disabilitare la regola per un file, una cartella o un progetto, impostarne la gravità su none nel file di configurazione .
[*.{cs,vb}]
dotnet_diagnostic.CA2263.severity = none
Per altre informazioni, vedere Come eliminare gli avvisi di analisi del codice.