首頁 >後端開發 >C++ >C#可以使用反射從字符串調用功能嗎?

C#可以使用反射從字符串調用功能嗎?

Patricia Arquette
Patricia Arquette原創
2025-01-26 02:26:09839瀏覽

Can C# Call a Function from a String Using Reflection?

C# 中透過字串呼叫函數

PHP 可以透過字串呼叫函數,如下所示:

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

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

.Net 是否可以實現類似的功能?

答案:

是的,.Net 可以使用反射透過字串呼叫函數。以下是實作方法:

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

在上述程式碼中,呼叫的方法必須具有公共存取修飾符。如果需要呼叫非公共方法,可以使用 BindingFlags 參數,如下所示:

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

以上是C#可以使用反射從字符串調用功能嗎?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn