Rumah >pembangunan bahagian belakang >C++ >Bolehkah C# memanggil fungsi dari rentetan?

Bolehkah C# memanggil fungsi dari rentetan?

DDD
DDDasal
2025-01-26 02:09:08416semak imbas

Can C# Call a Function from a String?

Fungsi panggilan melalui rentetan dalam C#

PHP boleh memanggil fungsi dengan nama fungsi yang disimpan dalam rentetan. Contohnya:

<code class="language-php">$function_name = 'hello';
$function_name();

function hello() { echo 'hello'; }</code>

Adakah ciri ini boleh dilakukan dengan .NET?

Ya. Anda boleh menggunakan refleksi untuk mencapai fungsi ini. Begini caranya:

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

Sila ambil perhatian bahawa kaedah yang dipanggil mesti mempunyai pengubah suai akses awam. Untuk kaedah bukan awam, gunakan parameter BindingFlags:

<code class="language-csharp">Type thisType = this.GetType();
MethodInfo theMethod = thisType
    .GetMethod(TheCommandString, BindingFlags.NonPublic | BindingFlags.Instance);
theMethod.Invoke(this, userParameters);</code>

Atas ialah kandungan terperinci Bolehkah C# memanggil fungsi dari rentetan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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