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 zakresu<T>. Clear() zamiast Span<T>. Fill()
Kategoria Wydajność
Poprawka powodująca niezgodność lub niezgodność Niezgodność
Domyślnie włączone na platformie .NET 9 Jako sugestia

Przyczyna

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

Opis reguły

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

Jak naprawić naruszenia

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

Przykład

Poniższy fragment kodu przedstawia 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.