コードインスペクション:パラメーターには、最適なパフォーマンスのため定数が必要です。
このインスペクションは、 ConstantExpected でアノテーションが付けられたパラメーターに渡された引数がコンパイル時定数でない場合について報告します。 このような API は、コンパイル時に既知の値を受け取るように設計されています。 変数やその他の定数以外の式を渡すと、通常、アノテーションの目的が損なわれ、API の誤った使用につながる可能性があります。
これは CA1857 コード品質ルールと同じです。
サンプル
using System.Diagnostics.CodeAnalysis;
class C
{
static void Log([ConstantExpected] int eventId) { }
void M()
{
int id = GetEventId();
Log(id);
}
}
using System.Diagnostics.CodeAnalysis;
class C
{
static void Log([ConstantExpected] int eventId) { }
void M()
{
Log(42);
}
}
2026 年 6 月 12 日