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

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

DDD
DDD原創
2025-01-26 02:21:08939瀏覽

Can C# Invoke Functions Dynamically from Strings Using Reflection?

C#中透過字串呼叫函數

PHP可以很方便地透過字串呼叫函數。那麼,C#可以實現這個功能嗎?

解答:反射

是的,反射允許您動態地透過字串執行方法。方法如下:

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

這段程式碼之所以有效,是因為它使用方法名稱的字串表示形式檢索方法的MethodInfo。

非公共方法

如果您需要呼叫非公共方法,請使用BindingFlags:

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

這指定了該方法是非公共的且特定於實例的。

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

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