Rumah > pembangunan bahagian belakang > C++ > Bagaimana saya boleh memanggil fungsi C# menggunakan namanya yang disimpan sebagai rentetan?

Bagaimana saya boleh memanggil fungsi C# menggunakan namanya yang disimpan sebagai rentetan?

Mary-Kate Olsen
Lepaskan: 2025-01-26 02:11:08
asal
264 orang telah melayarinya

How Can I Call a C# Function Using Its Name Stored as a String?

Fungsi panggilan

mengikut nama yang disimpan dalam rentetan

Banyak bahasa pengaturcaraan, termasuk PHP, membenarkan panggilan dinamik fungsi melalui rujukan rentetan. C# menyediakan keupayaan refleksi yang kaya, jadi fungsi ini juga tersedia dalam Rangka Kerja .NET.

Gunakan refleksi untuk panggilan fungsi dinamik

Untuk memanggil fungsi yang dikenal pasti oleh rentetan dalam C#, anda boleh menggunakan refleksi. Coretan kod berikut menunjukkan cara:

<code class="language-csharp">Type thisType = this.GetType();
MethodInfo theMethod = thisType.GetMethod(TheCommandString);
theMethod.Invoke(this, userParameters);</code>
Salin selepas log masuk

Dalam kod ini, nama kaedah yang akan dipanggil disimpan dalam pembolehubah TheCommandString. Kaedah Type digunakan untuk mendapatkan rujukan kepada kaedah mengikut nama dengan mendapatkan contoh thisType (GetMethod) bagi objek semasa. Akhir sekali, kaedah Invoke digunakan untuk melaksanakan kaedah, menghantar objek sasaran (ini) dan sebarang parameter yang diperlukan (userParameters).

Akses kaedah peribadi

Adalah penting untuk ambil perhatian bahawa kaedah yang akan dipanggil mesti boleh diakses dalam konteks operasi pantulan. Secara lalai, kaedah menggunakan pengubah suai akses peribadi tidak boleh diakses menggunakan kaedah ini. Untuk menyelesaikan masalah ini, anda boleh memasukkan parameter GetMethod dalam panggilan BindingFlags seperti ini:

<code class="language-csharp">MethodInfo theMethod = thisType
    .GetMethod(TheCommandString, BindingFlags.NonPublic | BindingFlags.Instance);</code>
Salin selepas log masuk

Dengan pengubahsuaian ini, bendera pengikatan NonPublic dan Instance ditentukan, membenarkan kaedah dipanggil tanpa mengira pengubah suai aksesnya.

Atas ialah kandungan terperinci Bagaimana saya boleh memanggil fungsi C# menggunakan namanya yang disimpan sebagai rentetan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan