首頁 > 後端開發 > C++ > 如何使用儲存為字串的名稱來呼叫 C# 函數?

如何使用儲存為字串的名稱來呼叫 C# 函數?

Mary-Kate Olsen
發布: 2025-01-26 02:11:08
原創
264 人瀏覽過

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

通過存儲在字符串中的名稱調用函數

許多編程語言(包括 PHP)都允許通過字符串引用動態調用函數。 C# 提供豐富的反射功能,因此 .NET 框架中也可以實現此功能。

使用反射進行動態函數調用

要在 C# 中調用由字符串標識的函數,可以使用反射。以下代碼片段演示瞭如何實現:

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

在此代碼中,要調用的方法的名稱存儲在變量 TheCommandString 中。通過獲取當前對象的 Type 實例 (thisType),GetMethod 方法用於根據名稱獲取對方法的引用。最後,Invoke 方法用於執行方法,傳入目標對象 (this) 和任何必要的參數 (userParameters)。

訪問私有方法

需要注意的是,要調用的方法必須在反射操作的上下文中可訪問。默認情況下,使用私有訪問修飾符的方法無法使用這種方法訪問。要解決此問題,可以在 GetMethod 調用中包含 BindingFlags 參數,如下所示:

<code class="language-csharp">MethodInfo theMethod = thisType
    .GetMethod(TheCommandString, BindingFlags.NonPublic | BindingFlags.Instance);</code>
登入後複製

通過此修改,指定了 NonPublicInstance 綁定標誌,允許調用方法,而不管其訪問修飾符如何。

以上是如何使用儲存為字串的名稱來呼叫 C# 函數?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板