首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在c#中计算通过字符串传递的函数

如何在c#中计算通过字符串传递的函数
EN

Stack Overflow用户
提问于 2012-04-26 21:35:29
回答 7查看 1.5K关注 0票数 2

我想知道在c#中是否有一种方法来执行一个方法,如果我们在一个字符串中只有它的名字?

代码语言:javascript
运行
复制
string methodname="method"
this.RunMethod(methodname)

像这样的吗?

谢谢:)

EN

回答 7

Stack Overflow用户

回答已采纳

发布于 2012-04-26 21:44:14

您可以创建一个泛型方法,通过它们的名称在任何您想要的实例上调用方法:

代码语言:javascript
运行
复制
public void RunMethodOn(object obj, String methodName,params Object[] args)
        {
            if(obj != null)
            {
                System.Reflection.MethodInfo method = null;
                method = obj.GetType().GetMethod(methodName);
                if (method != null)
                    method.Invoke(obj, args);
            }
        }

并使用它在您自己的实例上调用一个方法,如下所示:

代码语言:javascript
运行
复制
public void RunMethod(String methodName,params Object[] args)
            {
                   ExecuteOn(this, methodName, args);
            }
票数 0
EN

Stack Overflow用户

发布于 2012-04-26 21:38:39

试试这个:

代码语言:javascript
运行
复制
Type t = Type.GetType(typeName);
t.InvokeMember("method", BindingFlags.InvokeMethod | BindingFlags.Public, null, null, null);
票数 2
EN

Stack Overflow用户

发布于 2012-04-26 21:38:01

就像这样

代码语言:javascript
运行
复制
Type type = GetType("MyType");
MethodInfo methodInfo = type.GetMethod(methodName);
methodInfo.Invoke()
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10334588

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档