Apabila mereka bentuk hierarki kod anda, anda mungkin menghadapi keperluan untuk mewarisi kelas statik untuk mengumpulkan fungsi yang serupa bersama-sama. Walau bagaimanapun, operasi mudah ini menimbulkan cabaran dalam bahasa pengaturcaraan seperti C#.
Cuba untuk mencapai warisan kelas statik, seperti berikut, akan mengakibatkan ralat penyusunan:
public static class Base { } public static class Inherited : Base { }
Penghadan reka bentuk ini berpunca daripada sifat kelas statik.
Mengapa Sekatan?
Seperti yang dinyatakan oleh Mads Torgersen, bekas PM Bahasa C#, tiada sebab yang kukuh untuk mewarisi kelas statik. Ahli statik, yang boleh diakses melalui nama kelas itu sendiri, tidak memerlukan pewarisan sebagai alat organisasi.
Selain itu, pewarisan membayangkan tingkah laku polimorfik, yang tidak relevan untuk ahli statik kerana mereka hanya wujud sekali dalam ingatan dan tidak mempunyai tingkah laku khusus contoh. Dalam erti kata lain, ahli statik tidak dikaitkan dengan objek individu.
Pendekatan Alternatif
Daripada bergantung pada warisan kelas statik, pendekatan berikut menawarkan alternatif yang berdaya maju:
Jadi, walaupun warisan kelas statik tidak disokong, melaksanakan alternatif ini membantu mengurus organisasi dan fungsi kod tanpa menjejaskan prinsip reka bentuk asas.
Atas ialah kandungan terperinci Mengapa Kita Tidak Boleh Mewarisi Kelas Statik dalam C#?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!