Udostępnij za pośrednictwem


CA1856: Nieprawidłowe użycie atrybutu ConstantExpected

Właściwości Wartość
Identyfikator reguły CA1856
Tytuł Nieprawidłowe użycie atrybutu ConstantExpected
Kategoria Wydajność
Poprawka powodująca niezgodność lub niezgodność Niezgodność
Domyślnie włączone na platformie .NET 9 Jako błąd

Przyczyna

Atrybut ConstantExpectedAttribute nie jest poprawnie stosowany w parametrze.

Opis reguły

Ta reguła flaguje nieprawidłowe zastosowania atrybutu ConstantExpectedAttribute , takie jak:

  • Wartość Min lub Max nie jest zgodna z typem parametru.
  • Typ parametru nie jest obsługiwany dla atrybutu ConstantExpectedAttribute .
  • Wartości Min i Max są odwrócone.
  • Wartość Min lub Max nie mieści się w granicach wartości parametru.

Jak naprawić naruszenia

Popraw kod wskazany przez otrzymany komunikat o błędzie.

Przykład

Poniższy fragment kodu pokazuje naruszenia 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) { }

Poniższy fragment kodu naprawia naruszenia:

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) { }

Kiedy pomijać ostrzeżenia

Naruszenie tej reguły oznacza błąd w kodzie i zawsze powinno być naprawione.