接受ReSharper's的建议会毁了这个单例吗?

本文关键字:单例吗 ReSharper 接受 | 更新日期: 2023-09-27 18:04:08

我正在实现一个静态初始化的单例:

internal sealed class MySingleton
{
    private static readonly MySingleton instance = new MySingleton();
    public static MySingleton Instance => instance;
    private MySingleton()
    {
        // elided
    }
}

ReSharper修改了公共属性Instance,并提供将其转换为自动属性。如果接受修复,结果如下所示:

internal sealed class MySingleton
{
    public static MySingleton Instance { get; } = new MySingleton();
    private MySingleton()
    {
        // elided
    }
}

这个"修复"是不是使得每次调用Instance属性都会生成一个全新的MySingleton,从而破坏了整个目的,或者有一些关于静态属性的东西ReSharper知道而我不知道?

接受ReSharper's的建议会毁了这个单例吗?

这是一个只读的auto属性,使用c# 6中引入的语法。右边的代码只执行一次,只是为了初始化属性的值。