Sdílet prostřednictvím


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.