Udostępnij przez


CA2263: Preferuj przeciążenie ogólne, gdy typ jest znany

Wartość
Identyfikator reguły CA2263
Tytuł Preferuj przeciążenie ogólne, gdy typ jest znany
Kategoria Użycie
Poprawka jest przełomowa lub nieprzełomowa Non-breaking
Domyślnie włączone na platformie .NET 10 Jako sugestia

Przyczyna

Przeciążenie metody, które akceptuje argument, jest wywoływane System.Type , gdy typ jest znany w czasie kompilacji, a odpowiednie przeciążenie ogólne jest dostępne.

Opis reguły

Przeciążenia ogólne są preferowane do przeciążeń, które akceptują argument typu System.Type , gdy typ jest znany w czasie kompilacji (przy użyciu operatora typeof w języku C# lub operatora GetType w Visual Basic). Przeciążenia ogólne promują czystszy i bardziej bezpieczny kod typu dzięki ulepszonym sprawdzaniom czasu kompilacji.

Jak naprawić naruszenia

Aby naprawić naruszenie tej reguły, użyj odpowiedniego przeciążenia ogólnego.

Example

Poniższy fragment kodu przedstawia naruszenie ca2263:

int size = Marshal.SizeOf(typeof(bool));
Dim size As Integer = Marshal.SizeOf(GetType(Boolean))

Poniższy fragment kodu naprawia naruszenie:

int size = Marshal.SizeOf<bool>();
Dim size As Integer = Marshal.SizeOf(Of Boolean)()

Kiedy pomijać ostrzeżenia

Można bezpiecznie pominąć ostrzeżenie z tej reguły; jednak zaleca się użycie przeciążenia ogólnego, jeśli jest to możliwe.

Pomijanie ostrzeżenia

Jeśli chcesz po prostu pominąć pojedyncze naruszenie, dodaj dyrektywy preprocesora do pliku źródłowego, aby wyłączyć, a następnie ponownie włączyć regułę.

#pragma warning disable CA2263
// The code that's violating the rule is on this line.
#pragma warning restore CA2263

Aby wyłączyć regułę dla pliku, folderu lub projektu, ustaw jego ważność na none w pliku konfiguracji.

[*.{cs,vb}]
dotnet_diagnostic.CA2263.severity = none

Aby uzyskać więcej informacji, zobacz Jak pominąć ostrzeżenia dotyczące analizy kodu.