CA2263: Preferujte obecné přetížení, pokud je typ známý
Hodnota | |
---|---|
ID pravidla | CA2263 |
Název | Preferujte obecné přetížení, pokud je typ známý |
Kategorie | Využití |
Oprava způsobující chybu nebo chybu způsobující chybu | Nenarušující |
Povoleno ve výchozím nastavení v .NET 9 | Jako návrh |
Příčina
Přetížení metody, která přijímá System.Type argument je volána, když je typ známý v době kompilace a je k dispozici vhodné obecné přetížení.
Popis pravidla
Obecná přetížení jsou vhodnější než přetížení, která přijímají argument typu System.Type , pokud je typ známý v době kompilace (pomocí typeof operátor v jazyce C# nebo GetType operátor v jazyce Visual Basic). Obecná přetížení podporují čistější a více typově bezpečný kód s vylepšenými kontrolami doby kompilace.
Jak opravit porušení
Chcete-li opravit porušení tohoto pravidla, použijte vhodné obecné přetížení.
Příklad
Následující fragment kódu ukazuje porušení ca2263:
int size = Marshal.SizeOf(typeof(bool));
Dim size As Integer = Marshal.SizeOf(GetType(Boolean))
Následující fragment kódu opraví porušení zásad:
int size = Marshal.SizeOf<bool>();
Dim size As Integer = Marshal.SizeOf(Of Boolean)()
Kdy potlačit upozornění
Je bezpečné potlačit upozornění z tohoto pravidla; Pokud je to však možné, doporučujeme použít obecné přetížení.
Potlačení upozornění
Pokud chcete pouze potlačit jedno porušení, přidejte do zdrojového souboru direktivy preprocesoru, abyste pravidlo zakázali a znovu povolili.
#pragma warning disable CA2263
// The code that's violating the rule is on this line.
#pragma warning restore CA2263
Pokud chcete pravidlo pro soubor, složku nebo projekt zakázat, nastavte jeho závažnost v none
konfiguračním souboru.
[*.{cs,vb}]
dotnet_diagnostic.CA2263.severity = none
Další informace naleznete v tématu Jak potlačit upozornění analýzy kódu.