The singleton pattern is one of the most known and easiest design patterns in software engineering. In simple words, a singleton is a class which only allows a single instance of itself to be created. There are various different ways to implement this pattern in C#. In this tutorial, I will show you how you can implement the singleton design pattern with minimum amount of code.
public class LoginForm { private static bool instance_flag = false; // Private Constructor to block direct object creation private LoginForm() { } public static LoginForm instance() { if (instance_flag) { return null; } else { instance_flag = true; return new LoginForm(); } } // Class Destructor to reset instance_flag ~LoginForm() { instance_flag = false; } }
Following C3 Console application shows how to use a singleton LoginForm class. The first object f1 is created properly while attempt to create second instance f2 will return null.
class Program { static void Main(string[] args) { LoginForm f1 = LoginForm.instance(); Console.WriteLine(f1); LoginForm f2 = LoginForm.instance(); Console.WriteLine(f2); Console.Read(); } }