コードインスペクション: 'volatile'フィールドへのキャプチャされた参照は 'volatile'として扱われません
volatile フィールドを参照渡しすると、呼び出されたメソッド内で通常の volatile アクセス保証が失われます。 これにより、同期コードが誤解を招いたり、安全でなくなったりする可能性があります。
このインスペクションは、サポートされているインターロック API などの特殊なケースを除き、 volatile フィールドを参照渡しする ref および out 引数を報告します。
インスペクションは実質的に CS0420 コンパイラー警告(英語)と同じです。
サンプル
class Example
{
private volatile int _value;
void Update(ref int x) { }
void Test()
{
Update(ref _value);
}
}
class Example
{
private volatile int _value;
void Update(ref int x) { }
void Test()
{
var value = _value;
Update(ref value);
}
}
クイックフィックス
応急処置として、ローカル変数を導入し、その変数を渡す方法があります。
2026 年 6 月 12 日