집 >백엔드 개발 >C#.Net 튜토리얼 >C#의 싱글톤 클래스는 왜 항상 봉인되어 있나요?
sealed 키워드는 클래스를 상속받을 수 없음을 의미합니다. 생성자를 비공개로 선언하면 클래스의 인스턴스가 생성될 수 없습니다.
개인 생성자가 있는 기본 클래스를 가질 수 있지만 여전히 해당 기본 클래스에서 상속하고, 일부 공개 생성자를 정의하고, 기본 클래스를 효과적으로 인스턴스화할 수 있습니다.
생성자는 상속되지 않습니다. 따라서 파생 클래스는 기본 클래스가 상속되지 않습니다. 모든 전용 생성자가 있음) 파생 클래스는 항상 기본 클래스 생성자를 먼저 호출합니다.
클래스를 봉인됨으로 표시하면 누군가가 클래스를 상속하는 것을 방지하기 때문에 신중하게 구성된 싱글톤 클래스를 다루지 못하게 됩니다.
static class Program { static void Main(string[] args){ Singleton fromStudent = Singleton.GetInstance; fromStudent.PrintDetails("From Student"); Singleton fromEmployee = Singleton.GetInstance; fromEmployee.PrintDetails("From Employee"); Console.WriteLine("-------------------------------------"); Singleton.DerivedSingleton derivedObj = new Singleton.DerivedSingleton(); derivedObj.PrintDetails("From Derived"); Console.ReadLine(); } } public class Singleton { private static int counter = 0; private static object obj = new object(); private Singleton() { counter++; Console.WriteLine("Counter Value " + counter.ToString()); } private static Singleton instance = null; public static Singleton GetInstance{ get { if (instance == null) instance = new Singleton(); return instance; } } public void PrintDetails(string message){ Console.WriteLine(message); } public class DerivedSingleton : Singleton { } }
위 내용은 C#의 싱글톤 클래스는 왜 항상 봉인되어 있나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!