Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
| 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.