Apabila cuba menggunakan kaedah bukan statik di dalam pengendali acara untuk elemen GUI yang diisytiharkan di luar kelas, pembangun mungkin menghadapi mesej ralat "Rujukan objek diperlukan untuk mengakses medan, kaedah atau harta bukan statik ''..."
Ralat ini berlaku kerana pengendali acara memerlukan tika kelas untuk mengakses kaedah dan medannya. Secara lalai, elemen GUI memerlukan contoh kelas untuk dibuat sebelum ia boleh digunakan, dan memandangkan panggilan balik ini ditakrifkan sebagai fungsi kendiri di luar mana-mana kelas, ia tidak mempunyai rujukan objek yang diperlukan.
Untuk menyelesaikan isu ini, pertimbangkan dua pilihan:
public static void StartClick(object obj, EventArgs args) { // Non-static members can be accessed directly }
MainClass instance = new MainClass(); btn.Clicked += instance.StartClick; btn_stop.Clicked += instance.StopClick;
Pilihan antara pilihan ini bergantung pada reka bentuk aplikasi yang dimaksudkan. Pembolehubah statik global mungkin tidak diingini disebabkan oleh kebimbangan kebolehujian dan kebolehselenggaraan. Sebaliknya, mencipta berbilang contoh kelas mungkin tidak diperlukan. Memahami sebab di sebalik mesej ralat memberi kuasa kepada jurutera perisian untuk membuat keputusan termaklum mengenai kebolehcapaian dan corak reka bentuk.
Atas ialah kandungan terperinci Mengapa Saya Mendapat 'Rujukan Objek Diperlukan...' Apabila Menggunakan Kaedah Bukan Statik dalam Pengendali Acara GUI?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!