Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
| Property | valor |
|---|---|
| ID da regra | CA2264 |
| Título | Não passe um valor não anulável para ArgumentNullException.ThrowIfNull |
| Categoria | Utilização |
| A correção está quebrando ou não quebrando | Sem quebra |
| Habilitado por padrão no .NET 10 | Como aviso |
Motivo
Quando um valor que é conhecido por nunca ser nulo é passado para ArgumentNullException.ThrowIfNull(), uma exceção nunca é lançada, tornando a instrução um no-op.
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 por serem structs não anuláveis, expressões 'nameof()' e expressões 'novas' são conhecidas por nunca serem nulas, então ArgumentNullException.ThrowIfNull nunca serão lançadas.
No caso de um struct, uma vez ArgumentNullException.ThrowIfNull que 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 trecho de código a seguir mostra uma violação de CA2264:
static void Print(int value)
{
ArgumentNullException.ThrowIfNull(value);
Console.WriteLine(value);
}
O trecho de código a seguir corrige a violação:
static void Print(int value)
{
Console.WriteLine(value.Value);
}
Quando suprimir avisos
É sempre seguro suprimir este aviso.
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 CA2264
// The code that's violating the rule is on this line.
#pragma warning restore CA2264
Para desabilitar a regra de um arquivo, pasta ou projeto, defina sua gravidade como none no arquivo de configuração.
[*.{cs,vb}]
dotnet_diagnostic.CA2264.severity = none
Para obter mais informações, consulte Como suprimir avisos de análise de código.