using System.Threading.Tasks;
public sealed class Singleton
private static int counter =0;
private static Singleton instance = null;
private static readonly object instanceLock = new object();
public static Singleton GetInstance()
instance = new Singleton();
Console.WriteLine("Counter incremented to "+counter);
public void PrintMessage(string message)
Console.WriteLine(message);
public static void Main()
()=>PrintTeacherDetails(),
()=>PrintStudentDetails()
public static void PrintTeacherDetails()
Singleton fromTeacher = Singleton.GetInstance();
fromTeacher.PrintMessage("Teacher Object");
public static void PrintStudentDetails()
Singleton fromStudents = Singleton.GetInstance();
fromStudents.PrintMessage("Students Object");