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 Value " + counter.ToString());
public void PrintDetails(string message)
Console.WriteLine(message);
public static void Main(string[] args)
() => PrintTeacherDetails(),
() => PrintStudentdetails()
private static void PrintTeacherDetails()
Singleton fromTeacher = Singleton.GetInstance;
fromTeacher.PrintDetails("From Teacher");
private static void PrintStudentdetails()
Singleton fromStudent = Singleton.GetInstance;
fromStudent.PrintDetails("From Student");