CA1856: Uso incorreto do atributo ConstantExpected
Property | valor |
---|---|
ID da regra | CA1856 |
Título | Uso incorreto do atributo ConstantExpected |
Categoria | Desempenho |
A correção está quebrando ou não quebrando | Sem quebra |
Habilitado por padrão no .NET 8 | Como erro |
Motivo
O ConstantExpectedAttribute atributo não é aplicado corretamente em um parâmetro.
Descrição da regra
Esta regra sinaliza usos incorretos do ConstantExpectedAttribute atributo, como:
- O Min valor ou Max não é compatível com o tipo de parâmetro.
- O tipo de parâmetro não é suportado para o ConstantExpectedAttribute atributo.
- Os Min valores e Max são invertidos.
- O Min valor ou Max não se encaixa dentro dos limites de valor do parâmetro.
Como corrigir violações
Corrija seu código conforme indicado pela mensagem de erro específica que você recebe.
Exemplo
O trecho de código a seguir mostra violações de CA1856:
using System.Diagnostics.CodeAnalysis;
// Violation - value not compatible with parameter type.
static void M1([ConstantExpected(Min = "a")] char val) { }
// Violation - unsupported type for attribute.
static void M2([ConstantExpected] decimal val) { }
// Violation - Min and Max values are inverted.
static void M3([ConstantExpected(Max = 0, Min = 1)] int val) { }
// Violation - value does not fit within the parameter value bounds.
static void M4([ConstantExpected(Min = long.MinValue)] int val) { }
O trecho de código a seguir corrige as violações:
using System.Diagnostics.CodeAnalysis;
static void M1([ConstantExpected(Min = 'a')] char val) { }
static void M2(decimal val) { }
static void M3([ConstantExpected(Min = 0, Max = 1)] int val) { }
static void M4([ConstantExpected(Min = int.MinValue)] int val) { }
Quando suprimir avisos
Uma violação desta regra indica um erro no seu código e deve ser sempre corrigida.
Colabore connosco no GitHub
A origem deste conteúdo pode ser encontrada no GitHub, onde também pode criar e rever problemas e pedidos Pull. Para mais informações, consulte o nosso guia do contribuidor.