CA2263: Voorkeur geven aan algemene overbelasting wanneer type bekend is
Weergegeven als | |
---|---|
Regel-id | CA2263 |
Titel | Voorkeur geven aan algemene overbelasting wanneer type bekend is |
Categorie | Gebruik |
Oplossing is brekend of niet-brekend | Niet-brekend |
Standaard ingeschakeld in .NET 9 | Als suggestie |
Oorzaak
Een methodeoverbelasting die een System.Type argument accepteert, wordt aangeroepen wanneer het type bekend is tijdens het compileren en een geschikte algemene overbelasting beschikbaar is.
Beschrijving van regel
Algemene overbelastingen hebben de voorkeur aan overbelastingen die een argument van het type System.Type accepteren wanneer het type bekend is tijdens het compileren (met behulp van de operator type in C# of de Operator GetType in Visual Basic). Algemene overbelasting bevordert schonere en meer typeveilige code met verbeterde compileertijdcontroles.
Schendingen oplossen
Gebruik de geschikte algemene overbelasting om een schending van deze regel op te lossen.
Opmerking
In het volgende codefragment ziet u een schending van CA2263:
int size = Marshal.SizeOf(typeof(bool));
Dim size As Integer = Marshal.SizeOf(GetType(Boolean))
Met het volgende codefragment wordt de schending opgelost:
int size = Marshal.SizeOf<bool>();
Dim size As Integer = Marshal.SizeOf(Of Boolean)()
Wanneer waarschuwingen onderdrukken
Het is veilig om een waarschuwing van deze regel te onderdrukken; We raden u echter aan om indien mogelijk een algemene overbelasting te gebruiken.
Een waarschuwing onderdrukken
Als u slechts één schending wilt onderdrukken, voegt u preprocessorrichtlijnen toe aan uw bronbestand om de regel uit te schakelen en vervolgens opnieuw in te schakelen.
#pragma warning disable CA2263
// The code that's violating the rule is on this line.
#pragma warning restore CA2263
Als u de regel voor een bestand, map of project wilt uitschakelen, stelt u de ernst none
ervan in op het configuratiebestand.
[*.{cs,vb}]
dotnet_diagnostic.CA2263.severity = none
Zie Codeanalysewaarschuwingen onderdrukken voor meer informatie.