// In software engineering, the singleton pattern is a design pattern used to implement the mathematical // concept of a singleton, by restricting the instantiation of a class to one object. This is useful when // exactly one object is needed to coordinate actions across the system. The concept is sometimes generalized // to systems that operate more efficiently when only one object exists, or that restrict the instantiation // to a certain number of objects. public sealed class MySingleton { private static MySingleton instance; private static readonly Object sync = new object(); private MySingleton() { // initialize members here } public static MySingleton Instance { get { if (instance == null) { lock (sync) { if (instance == null) instance = new MySingleton(); } } return instance; } } public void SayHello() { Console.WriteLine("Hello!"); } }