Pass Method as Parameter using C#

后端 未结 12 1376
不知归路
不知归路 2020-11-21 23:30

I have several methods all with the same parameter types and return values but different names and blocks. I want to pass the name of the method to run to another method tha

12条回答
  •  心在旅途
    2020-11-22 00:20

    You can use the Func delegate in .net 3.5 as the parameter in your RunTheMethod method. The Func delegate allows you to specify a method that takes a number of parameters of a specific type and returns a single argument of a specific type. Here is an example that should work:

    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 myMethodName)
        {
            //... do stuff
            int i = myMethodName("My String");
            //... do more stuff
            return true;
        }
    
        public bool Test()
        {
            return RunTheMethod(Method1);
        }
    }
    

提交回复
热议问题