CA2263: Föredrar allmän överlagring när typen är känd
Värde | |
---|---|
Regel-ID | CA2263 |
Title | Föredrar allmän överlagring när typen är känd |
Kategori | Användning |
Korrigeringen är icke-bakåtkompatibel | Icke-icke-bryta |
Aktiverad som standard i .NET 9 | Som förslag |
Orsak
En metodöverlagring som accepterar ett System.Type argument anropas när typen är känd vid kompileringstillfället och en lämplig allmän överlagring är tillgänglig.
Regelbeskrivning
Allmänna överlagringar är att föredra framför överlagringar som accepterar ett argument av typen System.Type när typen är känd vid kompileringstid (med typ av operator i C# eller GetType-operatorn i Visual Basic). Allmänna överlagringar främjar renare och mer typsäker kod med förbättrade kompileringstidskontroller.
Så här åtgärdar du överträdelser
Om du vill åtgärda ett brott mot den här regeln använder du lämplig allmän överlagring.
Exempel
Följande kodfragment visar ett brott mot CA2263:
int size = Marshal.SizeOf(typeof(bool));
Dim size As Integer = Marshal.SizeOf(GetType(Boolean))
Följande kodfragment åtgärdar överträdelsen:
int size = Marshal.SizeOf<bool>();
Dim size As Integer = Marshal.SizeOf(Of Boolean)()
När du ska ignorera varningar
Det är säkert att ignorera en varning från den här regeln. Vi rekommenderar dock att du använder en allmän överlagring om möjligt.
Ignorera en varning
Om du bara vill förhindra en enda överträdelse lägger du till förprocessordirektiv i källfilen för att inaktivera och aktiverar sedan regeln igen.
#pragma warning disable CA2263
// The code that's violating the rule is on this line.
#pragma warning restore CA2263
Om du vill inaktivera regeln för en fil, mapp eller ett projekt anger du dess allvarlighetsgrad till none
i konfigurationsfilen.
[*.{cs,vb}]
dotnet_diagnostic.CA2263.severity = none
Mer information finns i Så här utelämnar du kodanalysvarningar.