Rumah >pembangunan bahagian belakang >C++ >Bagaimana untuk Mengakses Ahli Bukan Statik dari Dalam Pengendali Acara C#?
Akses Ahli Bukan Statik dalam Pengendali Acara
Dalam C#, mengakses ahli bukan statik dari dalam pengendali acara memerlukan rujukan objek. Walau bagaimanapun, apabila menghadapi ralat "Rujukan objek diperlukan untuk mengakses medan, kaedah atau sifat bukan statik", mungkin tidak jelas cara menyelesaikannya.
Isu timbul apabila menggunakan pengendali acara untuk memanggil kaedah yang mengakses sifat atau pembolehubah khusus contoh. Untuk menyelesaikan masalah ini, terdapat dua pilihan:
1. Isytihar Ahli dan Pengendali Acara sebagai Statik
Kaedah ini melibatkan pengisytiharan panggil balik pemasa sebagai acara perwakilan dan pembolehubah ahli sebagai statik dalam kelas. Ini membenarkan akses kepada ahli bukan statik tanpa memerlukan rujukan objek. Walau bagaimanapun, ia memperkenalkan pergantungan pada keadaan global, yang secara amnya tidak disyorkan untuk kebolehujian dan kebolehselenggaraan.
2. Cipta Contoh Kelas
Sebagai alternatif, tika kelas boleh dibuat dan pengendali acara boleh diberikan kepada kaedah dalam tika itu. Ini mewujudkan rujukan objek yang betul dan membenarkan akses kepada ahli bukan statik.
Contohnya:
MainClass instance = new MainClass(); btn.Clicked += instance.StartClick; btn_stop.Clicked += instance.StopClick;
Pilihan antara dua pendekatan ini bergantung pada konteks khusus aplikasi. Jika keadaan global tidak menjadi kebimbangan, mengisytiharkan ahli dan pengendali acara sebagai statik mungkin merupakan pilihan yang sesuai. Walau bagaimanapun, untuk senario yang memerlukan kebolehujian dan mengelakkan keadaan global, mencipta contoh kelas adalah disyorkan.
Dengan memahami punca ralat dan penyelesaian yang tersedia, pembangun boleh menyelesaikan isu ini dengan berkesan dan mengekalkan kekukuhan pemahaman prinsip pengaturcaraan berorientasikan objek dalam C#.
Atas ialah kandungan terperinci Bagaimana untuk Mengakses Ahli Bukan Statik dari Dalam Pengendali Acara C#?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!