CA1856: A ConstantExpected attribútum helytelen használata

Tulajdonság Érték
Szabályazonosító CA1856
Cím A ConstantExpected attribútum helytelen használata
Kategória Teljesítmény
A javítás kompatibilitástörő vagy nem törik Nem törés
Alapértelmezés szerint engedélyezve a .NET 8-ban Hibaként

Ok

Az ConstantExpectedAttribute attribútum nincs megfelelően alkalmazva egy paraméterre.

Szabály leírása

Ez a szabály az ConstantExpectedAttribute attribútum helytelen használatát jelöli, például:

  • Az Min vagy Max az érték nem kompatibilis a paraméter típusával.
  • Az attribútum paramétertípusa nem támogatott ConstantExpectedAttribute .
  • A Min rendszer megfordítja az Max értékeket.
  • Az Min vagy Max az érték nem fér el a paraméter értékkorlátjai között.

Szabálysértések kijavítása

Javítsa ki a kódot a kapott hibaüzenetnek megfelelően.

Példa

A következő kódrészlet a CA1856 megsértését mutatja be:

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

A következő kódrészlet kijavítja a szabálysértéseket:

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

Mikor kell letiltani a figyelmeztetéseket?

A szabály megsértése hibát jelez a kódban, és mindig ki kell javítani.