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 9 | 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.
Samarbeta med oss på GitHub
Källan för det här innehållet finns på GitHub, där du även kan skapa och granska ärenden och pull-begäranden. Se vår deltagarguide för mer information.