Redirecting to Singleton Design Pattern in C#: Thread-Safe Implementation and Modern Alternatives