CA1855: Span<T> gebruiken. Clear() in plaats van Span<T>. Fill()

Eigenschap Waarde
Regel-id CA1855
Titel Gebruik Span<T>. Clear() in plaats van Span<T>. Fill()
Categorie Prestaties
Fix kan brekend of niet-brekend zijn Niet-brekend
Standaard ingeschakeld in .NET 10 Als suggestie
Toepasselijke talen C#

Oorzaak

Span<T>.Fill(T) wordt aangeroepen om de elementen van een span te vullen met een standaardwaarde.

Beschrijving van regel

Het is efficiënter om Span<T>.Clear() aan te roepen dan Span<T>.Fill(T) om de spanelementen met een standaardwaarde te vullen.

Hoe schendingen op te lossen

Vervang de aanroep naar Span<T>.Fill(T) door een aanroep op Span<T>.Clear().

Voorbeeld

In het volgende codefragment ziet u een schending van CA1855:

void M(Span<byte> span)
{
    span.Fill(0);
}

Met het volgende codefragment wordt de schending opgelost:

void M(Span<byte> span)
{
    span.Clear();
}

Wanneer waarschuwingen onderdrukken

Het is veilig om deze waarschuwing te onderdrukken als de prestaties geen probleem zijn.

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 CA1855
// The code that's violating the rule is on this line.
#pragma warning restore CA1855

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.CA1855.severity = none

Zie voor meer informatie Hoe codeanalysewaarschuwingen te onderdrukken.