Rumah >pembangunan bahagian belakang >C++ >Bagaimanakah Saya Boleh Menggunakan Kaedah Peribadi Secara Dinamik Menggunakan Refleksi dalam C#?
Mengakses Kaedah Peribadi Menggunakan C# Reflection
Refleksi menawarkan cara yang berkuasa untuk berinteraksi dengan kaedah peribadi secara dinamik. Walau bagaimanapun, fungsi GetMethod()
standard sahaja tidak akan mengakses ahli persendirian. Had ini diatasi dengan menggunakan BindingFlags
penghitungan.
Penyelesaian:
Untuk mendapatkan semula kaedah peribadi, ubah suai panggilan GetMethod()
anda untuk memasukkan BindingFlags
yang diperlukan. Contoh ini menunjukkan cara:
<code class="language-csharp">MethodInfo dynMethod = this.GetType().GetMethod("Draw_" + itemType, BindingFlags.NonPublic | BindingFlags.Instance);</code>
Di sini, BindingFlags.NonPublic
memastikan kaedah peribadi disertakan dalam carian dan BindingFlags.Instance
menyatakan bahawa kami sedang mencari kaedah contoh (berbanding dengan kaedah statik). Dengan bendera ini, GetMethod()
akan berjaya mencari kaedah peribadi.
Selepas itu, gunakan kaedah persendirian menggunakan kaedah Invoke()
pada objek MethodInfo
yang dikembalikan, membekalkan parameter yang diperlukan.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menggunakan Kaedah Peribadi Secara Dinamik Menggunakan Refleksi dalam C#?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!