CA2265: Não comparar Span<T>
ou null
default
Propriedade | Valor |
---|---|
ID da regra | CA2264 |
Título | Não compare Span<T> com null ou default |
Categoria | Usage |
Correção interruptiva ou sem interrupção | Sem interrupção |
Habilitado por padrão no .NET 9 | Como aviso |
Causa
Uma Span<T> instância é comparada a null
ou default
.
Descrição da regra
Comparar um intervalo com null
ou default
pode não fazer o que você pretendia. default
e o null
literal são implicitamente convertidos em Span<T>.Empty
.
Como corrigir violações
Remova a comparação redundante ou torne o código mais explícito chamando IsEmpty em vez disso.
Exemplo
O snippet de código a seguir mostra duas violações do CA2265 e a correção para as violações.
Span<int> span = new([1, 2, 3]);
// CA2265 violation.
if (span == null) { }
// CA2265 violation.
if (span == default) { }
// Fixes the violation.
if (span.IsEmpty) { }
Quando suprimir avisos
É seguro suprimir esse aviso se você quiser comparar o intervalo com o intervalo vazio.
Suprimir um aviso
Para suprimir apenas uma violação, adicione diretivas de pré-processador ao arquivo de origem a fim de desabilitar e, em seguida, reabilitar a regra.
#pragma warning disable CA2265
// The code that's violating the rule is on this line.
#pragma warning restore CA2265
Para desabilitar a regra em um arquivo, uma pasta ou um projeto, defina a severidade como none
no arquivo de configuração.
[*.{cs,vb}]
dotnet_diagnostic.CA2265.severity = none
Para obter mais informações, confira Como suprimir avisos de análise de código.