Delen via


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.