ReSharper 2025.2 Help

代码检查:可能错误实现了 Double-Check Locking 模式。 可能对已检查字段的多次写入访问。

请考虑以下代码片段:

public class Foo { private static Foo instance; private static readonly object padlock = new object(); public static Foo Get() { if (instance == null) { lock (padlock) { if (instance == null) { instance = new Foo(); } } } return instance; } };

根据上述代码,初始化 Foo 实例的写入可能会延迟到实例值的写入,从而可能导致实例返回未初始化状态的对象。

为避免这种情况,必须将实例值设为 volatile

最后修改日期: 2025年 9月 27日