使用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

回到顶部