委托和lambda表达式,Action和Func
转自博客园(殉殇) 委托和lambda表达式,Action和Func 1、为什么要用委托 我们为什么要有委托?任何东西存在即合理,不合理的也会被时间淘汰掉,委托既然存在肯定有存在的必要,我们来看一下什么时候可以用到委托。 接下来我们有个需求,就是调用一个方法,取出1-1000个数字中所有是10的倍数的数字 public static List<int> GetNum() { List<int\> lst = new List<int>(); //这个算法是最简陋的,但是举这个例子是最合适的 for (int i = 1; i < 1000; i++) { if (i%10==0) { lst.Add(i); } } return lst; } 这个很好写,但是如果有一天,我们的需求变了,想取出1-1000个数字中所有是8的倍数的数字,那我们应该怎么写?是不是只要将if里面的条件改为i%8==0就行了,但是有一点变动的话就修改方法,说明这个方法写的并不好,如果方法很复杂的话修改也很艰难。可能有人会说在添加一个获取是8的倍数的方法,这样的话会增加数据冗余,也就是重复的内容。 如果我们可以传递方法的话,只要传过来一个(有一个参数为int类型返回值为Boolean类型的方法),这个问题将不是问题 public static List<int> GetNum