C#基本功------委托和事件(三)
下面我们来说一下系统自带的委托,一个就黑丝fun<>一个就是Action<>
这两个委托是系统给我们用的,我们一般用的时候用这两个委托就行了,不需要再自己声明一个委托,这两个的区别是前者有返回值,而后者是什么返回值的
下面我们先来介绍下IEnumerable这个东东。。。。微软给我们的解释是:公开枚举数,支持在指定的集合上进行简单的迭代,说明了凡是实现这个接口的东西,都可以实现foreach循环遍历,这就是为什么数组可以进行遍历,因为数组的父类是Array,而Array实现了接口IEnumerable
static void Main(string[] args)//显示5以上的内容 { List<int> list = new List<int>() { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12 }; IEnumerable<int>ies = list.Where(x=>x>5); foreach (int item in ies) { Console.WriteLine(item); } Console.ReadKey(); }
多播委托:其实就是方法之间的加减,要注意是不是return,因为return会覆盖
委托的本质:其实就是把类包装了一下,是可以new出来的
下面介绍下委托和事件最主要的区别:
---委托可以直接调用
--事件不可以直接调用
--委托可以直接赋值
--事件不可以直接赋值
为什么呢?因为事件event会自动生成一个private delegate变量和两个函数,add和remove