是否接受ReSharper的建议会毁掉这个单身人士?

时间:2016-08-26 20:08:13

标签: c# singleton resharper

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

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知道的静态属性,我不知道?

1 个答案:

答案 0 :(得分:3)

它是read-only auto property,使用C#6中引入的语法。右侧的代码只执行一次,只是为了初始分配属性的值。