コードインスペクション: オプションパラメーター値を定義するための誤解を招くおそれのある「DefaultValueAttribute」の使用
このインスペクションは、オプションパラメーターのデフォルト値を定義するために DefaultValueAttribute が使用されていることを報告します。 DefaultValueAttribute は、オプションパラメーターのメタデータに適した属性ではありません。
サンプル
using System.Runtime.InteropServices;
using System.ComponentModel;
void Log([Optional, DefaultValue(1)] int level)
{
}
これはオプションのパラメーター宣言のように見えますが、 DefaultValueAttribute は他のシナリオを想定したものであり、ここでは誤解を招く可能性があります。
修正方法
インスペクションエラーに対する専用の迅速な解決策はありません。 オプションパラメーターについては DefaultParameterValueAttribute を使用してください。
using System.Runtime.InteropServices;
void Log([Optional, DefaultParameterValue(1)] int level)
{
}
2026 年 6 月 12 日