Mengapa Ketidakupayaan untuk Mewarisi Kelas Statik dalam C#?
Walaupun keinginan praktikal untuk mengatur kelas statik dalam struktur hierarki, C# menyekat pewarisan kelas tersebut. Had ini berpunca daripada pertimbangan reka bentuk pencipta bahasa.
Menurut Mads Torgersen, PM Bahasa C#, pewarisan kelas statik adalah tidak wajar kerana:
Selain itu, warisan dalam . NET beroperasi semata-mata pada kaedah berasaskan contoh. Kaedah statik, yang ditakrifkan pada tahap jenis dan bukannya tahap contoh, tidak mempunyai jadual maya yang diperlukan untuk mengatasi. Menggunakan kaedah statik juga berbeza daripada kaedah contoh, kerana kaedah tersebut tidak mempunyai hantaran tersirat bagi contoh semasa sebagai hujah pertama. Ini menjadikannya mustahil untuk pengkompil menentukan kaedah yang hendak digunakan semasa pewarisan.
Sebagai penyelesaian separa, corak Singleton boleh digunakan untuk meniru gelagat kelas statik yang diwarisi tanpa melanggar batasan bahasa.
Atas ialah kandungan terperinci Mengapa Kelas Statik Tidak Boleh Diwarisi dalam C#?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!