gpt4 book ai didi

c# - 为什么我不能通过字符串调用这个方法?

转载 作者:行者123 更新时间:2023-11-30 18:52:00 24 4
gpt4 key购买 nike

来自 Reflection 新手的问题。我在 Windows 窗体中有一个方法:

private void handleOrderCode()
{
//...do stuff
}

我正尝试通过以下方式调用:

Type t = this.GetType();
MethodInfo mi = t.GetMethod("handleOrderCode");
if (mi != null) mi.Invoke(this, null);

我已确认“this”不为空。当这个工作时,字符串“handleOrderCode”被硬编码的空间将被替换为一个字符串变量。但是,目前“mi”在最后一行的 if 语句中计算时始终为 null。

那我做错了什么?

最佳答案

您需要指定绑定(bind)标志:

using System.Reflection;

t.GetMethod("handleOrderCode", BindingFlags.Instance | BindingFlags.NonPublic)

因为没有任何标志的重载意味着:

BindingFlags.Public | BindingFlags.Static | BindingFlags.Instance

即不会返回任何非公共(public)(私有(private)、 protected 等)成员。

关于c# - 为什么我不能通过字符串调用这个方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5702032/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com