Udostępnij przez


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 10 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.