Partilhar via


CA1855: Use o Span<T>. Clear() em vez de Span<T>. Preenchimento()

Property valor
ID da regra CA1855
Título Use o Span<T>. Clear() em vez de Span<T>. Preenchimento()
Categoria Desempenho
A correção está quebrando ou não quebrando Sem quebra
Habilitado por padrão no .NET 8 Como sugestão

Motivo

Span<T>.Fill(T) é chamado para preencher os elementos de um span com um valor padrão.

Descrição da regra

É mais eficiente chamar Span<T>.Clear() do que chamar Span<T>.Fill(T) para preencher os elementos da extensão com um valor padrão.

Como corrigir violações

Substitua a chamada para por uma chamada para Span<T>.Fill(T)Span<T>.Clear().

Exemplo

O trecho de código a seguir mostra uma violação de CA1855:

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

O trecho de código a seguir corrige a violação:

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

Quando suprimir avisos

É seguro suprimir esse aviso se o desempenho não for uma preocupação.

Suprimir um aviso

Se você quiser apenas suprimir uma única violação, adicione diretivas de pré-processador ao seu arquivo de origem para desativar e, em seguida, reativar a regra.

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

Para desabilitar a regra para um arquivo, pasta ou projeto, defina sua severidade como none no arquivo de configuração.

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

Para obter mais informações, consulte Como suprimir avisos de análise de código.