Udostępnij za pośrednictwem


CA1855: Użyj opcji Span<T>. Clear() zamiast Span<T>. Fill()

Właściwości Wartość
Identyfikator reguły CA1855
Tytuł Użyj Span<T>.Clear() zamiast Span<T>.Fill()
Kategoria Wydajność
Poprawka łamiąca lub nienaruszająca Niezgodność
Domyślnie włączone na platformie .NET 10 Jako sugestia
Zastosowane języki C#

Przyczyna

Span<T>.Fill(T) jest wywoływane w celu wypełnienia elementów przedziału wartością domyślną.

Opis reguły

Bardziej wydajne jest wywołanie Span<T>.Clear() niż wywołanie Span<T>.Fill(T) w celu wypełnienia elementów spanu wartością domyślną.

Jak naprawić naruszenia

Zastąp wywołanie Span<T>.Fill(T) wywołaniem Span<T>.Clear().

Przykład

Poniższy fragment kodu pokazuje naruszenie CA1855:

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

Poniższy fragment kodu naprawia naruszenie:

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

Kiedy pomijać ostrzeżenia

Można bezpiecznie pominąć to ostrzeżenie, jeśli wydajność nie jest problemem.

Pomijanie ostrzeżenia

Jeśli chcesz po prostu pominąć pojedyncze naruszenie, dodaj dyrektywy preprocesora do pliku źródłowego, aby wyłączyć, a następnie ponownie włączyć regułę.

#pragma warning disable CA1855
// The code that's violating the rule is on this line.
#pragma warning restore CA1855

Aby wyłączyć regułę dla pliku, folderu lub projektu, ustaw jego ważność na none w pliku konfiguracji.

[*.{cs,vb}]
dotnet_diagnostic.CA1855.severity = none

Aby uzyskać więcej informacji, zobacz Jak pominąć ostrzeżenia dotyczące analizy kodu.