代码检查:对 'volatile' 字段的捕获引用不会被视为 'volatile'
通过引用传递 volatile 字段会移除在被调用方法中通常的 volatile 访问保证。 这可能导致同步代码变得误导或不安全。
此检查会报告传递 volatile 字段引用的 ref 和 out 实参,特殊情况如支持的 interlocked API 除外。
该检查实际上等同于 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年 5月 8日