Rumah > pembangunan bahagian belakang > Tutorial C#.Net > Mengapa kelas tunggal dalam C# sentiasa dimeterai?

Mengapa kelas tunggal dalam C# sentiasa dimeterai?

王林
Lepaskan: 2023-08-29 08:21:05
ke hadapan
644 orang telah melayarinya

为什么 C# 中的单例类总是密封的?

kata kunci yang dimeterai bermaksud kelas itu tidak boleh diwarisi. Mengisytiharkan pembina sebagai peribadi bermakna tiada contoh kelas boleh dibuat.

Anda boleh mempunyai kelas asas dengan pembina persendirian tetapi masih mewarisi daripada kelas asas itu, tentukan beberapa pembina awam dan nyatakan kelas asas itu dengan berkesan.

#🎜 🎜# Pembina tidak diwarisi (jadi kelas terbitan tidak akan berbuat demikian hanya kerana kelas asas mempunyai semua pembina persendirian), dan kelas terbitan sentiasa memanggil pembina kelas asas terlebih dahulu.

Menanda kelas sebagai dimeterai menghalang seseorang daripada bermain-main dengan kelas tunggal anda yang dibina dengan teliti kerana ia menghalang seseorang daripada mewarisi kelas itu.

Contoh

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 {
   }
}
Salin selepas log masuk

Atas ialah kandungan terperinci Mengapa kelas tunggal dalam C# sentiasa dimeterai?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:tutorialspoint.com
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan