Dalam pengaturcaraan berorientasikan objek, ahli bukan statik, seperti pembolehubah contoh dan kaedah, memerlukan contoh objek untuk menjadi diakses. Jika anda cuba mengakses ahli bukan statik ini tanpa membuat objek terlebih dahulu, anda akan menghadapi ralat, "Rujukan objek diperlukan untuk mengakses ahli bukan statik."
Satu cara untuk menyelesaikan ralat ini adalah dengan menjadikan ahli yang terjejas statik. Ahli statik dikaitkan dengan kelas itu sendiri, bukan dengan objek individu. Ini bermakna ia boleh diakses tanpa contoh objek.
Sebagai contoh, dalam coretan kod yang anda berikan, kaedah StartClick dan StopClick bukan statik. Untuk membetulkan ralat, anda boleh mengubah suai kaedah ini seperti berikut:
public static void StartClick(object obj, EventArgs args) {} public static void StopClick(object obj, EventArgs args) {}
Walau bagaimanapun, ini akan memperkenalkan keadaan global ke dalam aplikasi anda, yang secara amnya tidak dianggap sebagai amalan yang baik.
Cara lain untuk menyelesaikan ralat adalah dengan mencipta tika kelas. Ini membolehkan anda mengakses ahli bukan statik melalui rujukan contoh.
Sebagai contoh, anda boleh menambah kod berikut sebelum mengakses kaedah StartClick dan StopClick:
MainClass instance = new MainClass(); btn.Clicked += instance.StartClick; btn_stop.Clicked += instance.StopClick;
Dengan mencipta tika daripada MainClass, anda mempunyai rujukan objek yang boleh digunakan untuk mengakses bukan statik ahli.
Keputusan sama ada untuk menggunakan ahli statik atau tika objek bergantung pada keperluan khusus aplikasi anda. Jika mengelakkan keadaan global adalah penting, mencipta contoh objek ialah pendekatan pilihan. Ini memberikan enkapsulasi dan kebolehujian yang lebih baik untuk kod anda.
Atas ialah kandungan terperinci Apa yang Menyebabkan Ralat 'Rujukan Objek Diperlukan' dan Bagaimana Ia Boleh Diselesaikan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!