Sdílet prostřednictvím


CA2263: Preferujte obecné přetížení, pokud je typ známý

Hodnota
Identifikátor pravidla CA2263
Titul Preferujte obecné přetížení, pokud je typ známý
Kategorie Využití
Oprava je destruktivní nebo nedestruktivní Non-breaking
Povoleno ve výchozím nastavení v .NET 10 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í.

Example

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čte 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

Chcete-li pravidlo pro soubor, složku nebo projekt zakázat, nastavte jeho závažnost na none v 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.