CA1856: Falsche Verwendung des ConstantExpected-Attributs
Eigenschaft | Wert |
---|---|
Regel-ID | CA1856 |
Titel | Falsche Verwendung des ConstantExpected-Attributs |
Kategorie | Leistung |
Fix führt oder führt nicht zur Unterbrechung | Nicht unterbrechend |
Standardmäßig in .NET 9 aktiviert | Als Fehler |
Ursache
Das ConstantExpectedAttribute-Attribut wird nicht korrekt auf einen Parameter angewendet.
Regelbeschreibung
Diese Regel kennzeichnet falsche Verwendungen des ConstantExpectedAttribute-Attributs, z. B.:
- Der Min oder Max-Wert ist nicht mit dem Parametertyp kompatibel.
- Der Parametertyp wird für das ConstantExpectedAttribute-Attribut nicht unterstützt.
- Die Min und Max-Werte sind invertiert.
- Der Min oder Max-Wert passt nicht in die Grenzen des Parameterwerts.
Behandeln von Verstößen
Korrigieren Sie Ihren Code entsprechend der von Ihnen empfangenen spezifischen Fehlermeldung.
Beispiel
Der folgende Codeschnipsel zeigt zwei Verstöße gegen 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) { }
Der folgende Codeschnipsel korrigiert die Verletzung:
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) { }
Wann sollten Warnungen unterdrückt werden?
Ein Verstoß gegen diese Regel weist auf einen Fehler im Code hin und sollte immer behoben werden.
Arbeiten Sie mit uns auf GitHub zusammen
Die Quelle für diesen Inhalt finden Sie auf GitHub, wo Sie auch Issues und Pull Requests erstellen und überprüfen können. Weitere Informationen finden Sie in unserem Leitfaden für Mitwirkende.