Rumah >pembangunan bahagian belakang >C++ >Mengapa memanggil kaedah bukan statik dari kaedah statik menyebabkan ralat CS0120?
katakan anda mempunyai kaedah yang tidak statik seperti dalam kelas . Jika anda cuba memanggil
dari kaedah statik (mis.,), anda akan menghadapi ralat CS0120. Inilah sebabnya dan bagaimana untuk memperbaikinya: setTextboxText
Form1
setTextboxText
Mengapa ralat berlaku: SumData
Kaedah bukan statik beroperasi pada
Penyelesaian:
Beberapa pendekatan dapat menyelesaikannya:
Buat kaedah statik (jika boleh):
Penyelesaian yang paling mudah adalah untuk membuat ia tidak bergantung pada data khusus contoh. Walau bagaimanapun, ini sering tidak boleh dilaksanakan jika kaedah memanipulasi pembolehubah contoh (seperti teks kotak teks).
setTextboxText
Gunakan singleton:
Form1
Form1
Buat contoh dalam kaedah statik:
. Ini mewujudkan contoh baru setiap kali kaedah statik dipanggil. Ini biasanya tidak disyorkan untuk sebab -sebab prestasi melainkan jika contohnya diperlukan hanya sementara.
Form1
SumData
setTextboxText
Buat kaedah panggilan tidak statik:
SumData
memilih penyelesaian yang betul:
Pendekatan terbaik bergantung pada reka bentuk dan keperluan aplikasi anda. Jika boleh, membuat SumData
tidak statik (pilihan 4) sering menjadi penyelesaian pilihan untuk kejelasan dan kebolehkerjaan. Corak singleton (pilihan 2) sesuai untuk situasi di mana anda benar -benar memerlukan hanya satu contoh kelas. Mewujudkan contoh baru dalam kaedah statik (pilihan 3) harus digunakan dengan berhati -hati kerana implikasi prestasi yang berpotensi. Membuat kaedah statik (pilihan 1) hanya berdaya maju jika kaedah tidak bergantung kepada pembolehubah contoh.
Atas ialah kandungan terperinci Mengapa memanggil kaedah bukan statik dari kaedah statik menyebabkan ralat CS0120?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!