CA1855: Använd Span<T>. Clear() i stället för Span<T>. Fill()
Property | Värde |
---|---|
Regel-ID | CA1855 |
Title | Använd Span<T>. Clear() i stället för Span<T>. Fill() |
Kategori | Prestanda |
Korrigeringen är icke-bakåtkompatibel | Icke-icke-bryta |
Aktiverad som standard i .NET 9 | Som förslag |
Orsak
Span<T>.Fill(T) anropas för att fylla elementen i ett spann med ett standardvärde.
Regelbeskrivning
Det är mer effektivt att anropa Span<T>.Clear() än att anropa Span<T>.Fill(T) för att fylla elementen i intervallet med ett standardvärde.
Så här åtgärdar du överträdelser
Ersätt anropet till Span<T>.Fill(T) med ett anrop till Span<T>.Clear().
Exempel
Följande kodfragment visar ett brott mot CA1855:
void M(Span<byte> span)
{
span.Fill(0);
}
Följande kodfragment åtgärdar överträdelsen:
void M(Span<byte> span)
{
span.Clear();
}
När du ska ignorera varningar
Det är säkert att ignorera den här varningen om prestanda inte är ett problem.
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 CA1855
// The code that's violating the rule is on this line.
#pragma warning restore CA1855
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.CA1855.severity = none
Mer information finns i Så här utelämnar du kodanalysvarningar.