CA1856: ConstantExpected özniteliğinin yanlış kullanımı

Özellik Değer
Kural Kimliği CA1856
Başlık ConstantExpected özniteliğinin yanlış kullanımı
Kategori Performans
Hataya neden olan veya bozulmayan düzeltme Hataya neden olmayan
.NET 8'de varsayılan olarak etkin Hata olarak

Neden

ConstantExpectedAttribute Özniteliği bir parametreye doğru uygulanmadı.

Kural açıklaması

Bu kural özniteliğin ConstantExpectedAttribute yanlış kullanımlarına bayrak ekler, örneğin:

  • Min veya Max değeri parametre türüyle uyumlu değildir.
  • Parametre türü öznitelik için ConstantExpectedAttribute desteklenmez.
  • Min ve Max değerleri tersine çevrilir.
  • Min veya Max değeri parametre değeri sınırlarına sığmaz.

İhlalleri düzeltme

Kodunuzu, aldığınız hata iletisiyle belirtilen şekilde düzeltin.

Örnek

Aşağıdaki kod parçacığı CA1856 ihlallerini gösterir:

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şağıdaki kod parçacığı ihlalleri düzeltir:

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

Uyarıların ne zaman bastırılması gerekiyor?

Bu kuralın ihlali, kodunuzda bir hata olduğunu gösterir ve her zaman düzeltilmelidir.