您应该尝试避免使用Singleton,但是如果需要,Lazy<T>可以轻松实现懒惰的,线程安全的Singleton:public sealed class Singleton{ // Because Singleton's constructor is private, we must explicitly // give the Lazy<Singleton> a delegate for creating the Singleton. static readonly Lazy<Singleton> instanceHolder = new Lazy<Singleton>(() => new Singleton()); Singleton() { // Explicit private constructor to prevent default public constructor. ... } public static Singleton Instance => instanceHolder.Value;}