CA1856: ConstantExpected 属性の使用が正しくない
プロパティ | 値 |
---|---|
ルール ID | CA1856 |
Title | ConstantExpected 属性の使用が正しくない |
カテゴリ | パフォーマンス |
修正が中断ありか中断なしか | なし |
.NET 8 では既定で有効 | エラーとして |
原因
ConstantExpectedAttribute 属性がパラメーターに正しく適用されていません。
規則の説明
この規則は、次のような ConstantExpectedAttribute 属性の不適切な使用にフラグを設定します。
- Min 値または Max 値がパラメーター型と互換性がない。
- パラメーター型が ConstantExpectedAttribute 属性ではサポートされていない。
- Min 値と Max 値が反転している。
- Min 値または Max 値がパラメーター値の境界内に収まっていない。
違反の修正方法
受け取った特定のエラー メッセージで示されているように、コードを修正します。
例
次のコード スニペットは、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) { }
次のコード スニペットでは、これらの違反を修正しています。
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) { }
どのようなときに警告を抑制するか
この規則に違反すると、コードでエラーが示されます。エラーは常に修正する必要があります。
GitHub で Microsoft と共同作業する
このコンテンツのソースは GitHub にあります。そこで、issue や pull request を作成および確認することもできます。 詳細については、共同作成者ガイドを参照してください。
.NET