Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
| Propriedade | Valor |
|---|---|
| ID da regra | CA2264 |
| Título | Não passe um valor não anulável para ArgumentNullException.ThrowIfNull |
| Categoria | Usage |
| Correção interruptiva ou sem interrupção | Sem interrupção |
| Habilitado por padrão no .NET 10 | Como aviso |
Causa
Quando um valor que é conhecido por nunca ser nulo é passado para ArgumentNullException.ThrowIfNull(), uma exceção nunca é lançada, tornando a instrução não operacional.
Descrição da regra
ArgumentNullException.ThrowIfNull lança quando o argumento passado é null. Certas construções, como structs não anuláveis (exceto para Nullable<T>), parâmetros de tipo conhecidos como structs não anuláveis, expressões 'nameof()' e expressões 'new' são conhecidas por nunca serem nulas, portanto ArgumentNullException.ThrowIfNull , nunca serão lançadas.
No caso de um struct, como ArgumentNullException.ThrowIfNull aceita um object?, o struct é encaixotado, o que causa uma penalidade de desempenho adicional.
Como corrigir violações
Remova a ArgumentNullException.ThrowIfNull chamada.
Exemplo
O snippet de código a seguir mostra uma violação do CA2264:
static void Print(int value)
{
ArgumentNullException.ThrowIfNull(value);
Console.WriteLine(value);
}
O seguinte snippet de código conserta a violação:
static void Print(int value)
{
Console.WriteLine(value.Value);
}
Quando suprimir avisos
É sempre seguro suprimir esse aviso.
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 CA2264
// The code that's violating the rule is on this line.
#pragma warning restore CA2264
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.CA2264.severity = none
Para obter mais informações, confira Como suprimir avisos de análise de código.