Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
| Érték | |
|---|---|
| Szabályazonosító | CA2263 |
| Title | Általános túlterhelés előnyben részesítve, ha a típus ismert |
| Kategória | Usage |
| A javítás törést okoz vagy nem okoz törést | Nem törhető |
| Alapértelmezés szerint engedélyezve a .NET 10-ben | Javaslatként |
| Alkalmazandó nyelvek | C# és Visual Basic |
Oka
Egy argumentumot System.Type elfogadó metódust akkor hívunk meg, ha a típus fordításkor ismert, és megfelelő általános túlterhelés érhető el.
Szabály leírása
Az általános túlterhelések előnyben részesítik azokat a túlterheléseket, amelyek akkor fogadják el a típus System.Type argumentumát, ha a típus fordításkor ismert (a C# típusműveletével vagy a Visual Basic GetType operátorával ). Az általános túlterhelések a hatékonyabb fordítási idő ellenőrzésével elősegítik a tisztább és a típusbiztosabb kód használatát.
Szabálysértések kijavítása
A szabály megsértésének kijavításához használja a megfelelő általános túlterhelést.
Example
A következő kódrészlet a CA2263 megsértését mutatja be:
int size = Marshal.SizeOf(typeof(bool));
Dim size As Integer = Marshal.SizeOf(GetType(Boolean))
A következő kódrészlet kijavítja a szabálysértést:
int size = Marshal.SizeOf<bool>();
Dim size As Integer = Marshal.SizeOf(Of Boolean)()
Mikor kell letiltani a figyelmeztetéseket?
A szabályból származó figyelmeztetéseket nyugodtan el lehet tiltani; javasoljuk azonban, hogy ha lehetséges, használjon általános túlterhelést.
Figyelmeztetés mellőzése
Ha csak egyetlen szabálysértést szeretne letiltani, adjon hozzá előfeldolgozási irányelveket a forrásfájlhoz a szabály letiltásához és újbóli engedélyezéséhez.
#pragma warning disable CA2263
// The code that's violating the rule is on this line.
#pragma warning restore CA2263
Ha le szeretné tiltani egy fájl, mappa vagy projekt szabályát, állítsa annak súlyosságát none a konfigurációs fájlban.
[*.{cs,vb}]
dotnet_diagnostic.CA2263.severity = none
További információ: Kódelemzési figyelmeztetések letiltása.