使用C#将方法传递为参数
我有几种方法都具有相同的签名(参数和返回值),但是不同的名称和方法的内部原理不同。我想将要运行的方法的名称传递给另一个方法,该方法将调用传入的方法。
public int Method1(string){
... do something
return myInt;
}
public int Method2(string)
{
... do something different
return myInt;
}
public bool RunTheMethod([Method Name passed in here] myMethodName)
{
... do stuff
int i = myMethodName("My String");
... do more stuff
return true;
}
public bool Test()
{
return RunTheMethod(Method1);
}
这段代码不起作用,但这就是我想要做的。我不了解如何编写RunTheMethod代码,因为我需要定义参数。
回答:
您可以将.net
3.5中的Func委托用作RunTheMethod方法中的参数。Func委托允许您指定一个方法,该方法采用许多特定类型的参数并返回特定类型的单个参数。这是一个应该起作用的示例:
public class Class1{
public int Method1(string input)
{
//... do something
return 0;
}
public int Method2(string input)
{
//... do something different
return 1;
}
public bool RunTheMethod(Func<string, int> myMethodName)
{
//... do stuff
int i = myMethodName("My String");
//... do more stuff
return true;
}
public bool Test()
{
return RunTheMethod(Method1);
}
}
以上是 使用C#将方法传递为参数 的全部内容, 来源链接: utcz.com/qa/399919.html