ReSharper 2026.1 Help

代码检查:对 'volatile' 字段的捕获引用不会被视为 'volatile'

通过引用传递 volatile 字段会移除被调用方法内通常的 volatile 访问保障。 这可能导致同步代码产生误导或不安全。

此检查会报告通过引用传递 volatile 字段的 refout 参数,支持的 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日