Partilhar via


CA1856: Uso incorreto do atributo ConstantExpected

Propriedade valor
ID da regra CA1856
Título Uso incorreto do atributo ConstantExpected
Categoria Desempenho
A correção causa interrupção ou não Ininterrupto
Habilitado por padrão no .NET 10 Como erro
Línguas aplicáveis C#

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 valor Min ou o Max não é compatível com o tipo de parâmetro.
  • O tipo de parâmetro não é suportado para o ConstantExpectedAttribute atributo.
  • Os valores Min e Max estão invertidos.
  • O valor Min ou Max não se enquadra nos limites 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.