memanfaatkan refleksi untuk memanggil kaedah c# peribadi
Refleksi dalam C# menawarkan keupayaan untuk mengakses dan menggunakan kaedah kelas swasta -fungsi yang biasanya dihadkan dari kod luaran. Ini boleh berfaedah dalam situasi yang memerlukan panggilan kaedah dinamik, kontinjen pada data runtime.Coretan kod anda menggunakan
untuk mencari kaedah mengikut nama. Walau bagaimanapun, GetMethod()
lalai untuk tidak termasuk ahli swasta. Untuk memasukkan kaedah peribadi, anda mesti menggabungkan spesifik GetMethod()
apabila memanggil BindingFlags
: GetMethod()
<code class="language-csharp">MethodInfo dynMethod = this.GetType().GetMethod("Draw_" + itemType, BindingFlags.NonPublic | BindingFlags.Instance); dynMethod.Invoke(this, new object[] { methodParams });</code>
Memastikan kemasukan kaedah bukan awam (swasta) dalam carian, manakala BindingFlags.NonPublic
mengehadkan carian untuk kaedah contoh. Gabungan ini menjamin bahawa BindingFlags.Instance
dengan betul mengenal pasti kaedah peribadi yang dikehendaki dalam contoh kelas semasa. GetMethod()
. Dokumentasi ini secara komprehensif menyenaraikan semua bendera yang tersedia untuk carian penapisan di seluruh kaedah, bidang, dan ahli kelas lain. BindingFlags
Atas ialah kandungan terperinci Bagaimanakah saya boleh mengakses kaedah peribadi menggunakan refleksi di C#?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!