利用反射調用C#私有方法
動態調用私有方法,尤其當方法名基於輸入值變化時,需要用到反射技術。 GetMethod()
方法默認只獲取公共方法,忽略私有方法。要訪問私有方法,需向 GetMethod()
函數添加 BindingFlags
。
需要組合 BindingFlags.NonPublic
和 BindingFlags.Instance
兩個標誌。這將包含當前實例範圍內的非公共(私有)方法。
修改後的代碼如下:
<code class="language-csharp">MethodInfo dynMethod = this.GetType().GetMethod("Draw_" + itemType, BindingFlags.NonPublic | BindingFlags.Instance); dynMethod.Invoke(this, new object[] { methodParams });</code>
這段代碼將成功檢索私有方法 "Draw_" 並使用提供的參數調用它。
更多關於反射和 BindingFlags
的信息,請參考以下文檔:
以上是C#中如何使用反射呼叫私有方法?的詳細內容。更多資訊請關注PHP中文網其他相關文章!