单例模式 - 简化实现?

时间:2017-08-17 07:24:36

标签: c# singleton resharper

C# in Depth中建议的单例模式实现是

public sealed class Singleton
{
    private static readonly Singleton instance = new Singleton();
    static Singleton()
    {
    }

    private Singleton()
    {
    }

    public static Singleton Instance
    {
        get
        {
            return instance;
        }
    }
}

ReSharper建议使用auto属性和C#6自动属性初始化程序来简化它:

public sealed class Singleton
{
    static Singleton()
    {
    }

    private Singleton()
    {
    }

    public static Singleton Instance { get; } = new Singleton();
}

这确实看起来更简单。使用这种简化有不足之处吗?

1 个答案:

答案 0 :(得分:2)

在现场https://sharplab.io,您可以查看IL代码,在这两种情况下,IL代码都相似。所以这应该是一样的。