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!