C#委托_Action和Func (方法可以当作一个参数传递)
电脑版发表于:2019/9/29 11:16
大家好,好久不见哦!前段时间因为忘记了帐号了没有更新了哈哈!
今天普及一下自己学到的新花样,在C#里面方法居然可以当参数传递?好奇怪是不是...
首先这个定义成为委托 OK废话不多说 上代码
我们定义一个类MyTime 里面添加一个方法
//定义一个私有方法,输出一句话 private void nameHappy(string name) { Console.WriteLine(name+"国庆快乐"); }
然后再定义一个无返回值有参数的方法Excute
public void Excute(string name) { nameHappy(name); }
上面的Excute就是委托的方法,相当于用户委托这个方法执行其他任意的方法,里面可以做一些业务逻辑操作等等..
然后我们在主函数(Main())入口执行操作,如下代码:
static void Main(string[] args) { MyTime mytime = new MyTime(); Action<string> acction = mytime.Excute; acction("赖总"); }
上面如下截图解释:
运行代码:
上面所说的是没有返回值委托方法 使用Action委托
下面我们来看一下如果委托方法有参数呢?怎么办
上代码
在MyTime里定义一个Num私有方法
private int Num(int num1, int num2) { return num1 + num2; }
委托方法GetNum方法返回计算结果:
public int GetNum(int num1, int num2) { return Num(num1, num2); }
然后再主函数入口
static void Main(string[] args) { MyTime mytime = new MyTime(); //Action<string, int> acction = mytime.Excute; //acction("赖总", 70); Func<int, int, int> func = mytime.GetNum; int result = func(2, 3); Console.WriteLine("计算结果为:" + result); //Action<int, int> action_time = mytime.timeout; //action_time(70, 500); }
上面代码如截图解释:
运行代码:
这是我对于委托的理解 如果有高见 欢迎指导哦!
作用:委托可以在委托方法里做一些逻辑操作,提高效率,简化代码...
但是对于小编来说还是要花点小时间来理解这个委托这种东西哈 哈哈
OK本期结束,下期再见 谢谢浏览阅读....