CA1856: Felaktig användning av attributet ConstantExpected

Property Värde
Regel-ID CA1856
Title Felaktig användning av attributet ConstantExpected
Kategori Prestanda
Korrigeringen är icke-bakåtkompatibel Icke-icke-bryta
Aktiverad som standard i .NET 8 Som fel

Orsak

Attributet ConstantExpectedAttribute tillämpas inte korrekt på en parameter.

Regelbeskrivning

Den här regeln flaggar felaktig användning av ConstantExpectedAttribute attributet, till exempel:

  • Värdet Min eller Max är inte kompatibelt med parametertypen.
  • Parametertypen stöds inte för attributet ConstantExpectedAttribute .
  • Värdena Min och Max är inverterade.
  • Värdet Min eller Max passar inte inom parametervärdets gränser.

Så här åtgärdar du överträdelser

Korrigera koden enligt det specifika felmeddelande som du får.

Exempel

Följande kodfragment visar överträdelser av 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) { }

Följande kodfragment åtgärdar överträdelserna:

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

När du ska ignorera varningar

Ett brott mot den här regeln indikerar ett fel i koden och bör alltid åtgärdas.