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
Düzeltme bozucu ya da bozmayan olabilir Kesintisiz
.NET 10'da varsayılan olarak etkin Hata olarak
Geçerli diller C#

Neden

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

Kural açıklaması

Bu kural ConstantExpectedAttribute özniteliğinin yanlış kullanımlarını işaretler, örneğin:

  • Min veya Max değeri parametre türüyle uyumlu değildir.
  • Parametre türü ConstantExpectedAttribute özniteliği için 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.