내 개인적인 취향은 솔루션 4입니다 : 나는 일반적으로 초기화를 트리거하지 않고 다른 정적 메서드를 호출 할 수 있어야하거나 싱글 톤이 이미 인스턴스화되었는지 여부를 알아야하는 경우입니다. 내가 그 상황에 있었던 마지막 시간을 기억하지 않는다, 심지어 내가 가정. 이 경우, 나는 아마 솔루션 2에 갈 것, 이는 여전히 좋은 바로 얻을 쉽게. 싱글톤 패턴은 소프트웨어 엔지니어링에서 가장 잘 알려진 패턴 중 하나입니다. 기본적으로 싱글톤은 자체의 단일 인스턴스만 만들 수 있는 클래스이며 일반적으로 해당 인스턴스에 대한 간단한 액세스 권한을 부여합니다. 일반적으로 singletons는 인스턴스를 만들 때 매개 변수를 지정할 수 없습니다. 동일한 매개 변수를 가진 모든 요청에 대해 동일한 인스턴스에 액세스해야 하는 경우 팩터리 패턴이 더 적합합니다. 이 문서에서는 매개 변수가 필요하지 않은 상황만 다룹니다. 일반적으로 싱글톤의 요구 사항은 인스턴스가 처음 필요할 때까지 인스턴스가 만들어지지 않는다는 것입니다. 두 가지 구현 세부 정보: 하나, 생성자는 private으로 표시 되어 인스턴스의 “singleton-ness”를 적용 하 고 클래스 외부 하나를 인스턴스화 하는 모든 캐주얼 클라이언트를 방지 합니다. 둘째, Product type은 실제 생성을 수행하는 형식 생성기를 선언하여 이 코드가 더 정교해질 수 있음을 보여 줍니다. 해당 코드가 형식 생성자 내부에서 수행되든 인스턴스 생성자 또는 속성의 인스턴스 접근자 메서드가 미적 값에 종속될 수 있지만 구성/초기화 프로세스에서 예외를 생성할 수 있는 경우 필요한 경우 클라이언트 코드에서 예외를 catch하고 처리할 수 있도록 인스턴스 접근자(get) 내에서 처리하는 것이 좋습니다. 형식 생성자에서 throw된 예외는 일반적으로 /dev/null로 이동하게 되며 프로그램에서 찾기 어려운 버그를 나타냅니다.

C#에서 싱글톤 패턴을 구현하는 방법에는 여러 가지가 있습니다.