Oggi, mi è capitato di utilizzare il pattern Singleton, per un mio progetto.
Quello che permette di fare questo design pattern è limitare la creazione di una nuova istanza di un oggetto ad una singola volta.
Ecco come questo pattern può essere implementato ed utilizzato in C#:

public class Singleton

{
private static Singleton instance = null;

private Singleton() {}

public static Singleton getInstance()
{
if(instance == null)
instance = new Singleton();
return instance;
}
}

public class Main
{
public static void Main()
{
Singleton s1 = Singleton.getInstance();
Singleton s2 = Singleton.getInstance();

if(s1 == s2)
Console.Writeline("Stessa istanza");
}
}