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