毕业论文开发语言企业开发JAVA技术.NET技术WEB开发Linux/Unix数据库技术Windows平台移动平台嵌入式论文范文英语论文
您现在的位置: 毕业论文 >> net技术 >> 正文

delegate的好处或必用处

更新时间:2013-7-25:  来源:毕业论文

delegate的好处或必用处

最简单的,如果没有委托,如何实现一个自定义控件,并且提供一些事件给调用者使用?

委托的一个有趣且有用的属性是,它不知道或不关心自己引用的对象的类。任何对象都可以;只是方法的参数类型和返回类型必须与委托的参数类型和返回类型相匹配。这使得委托完全适合“匿名”调用。委托可以同时委托多个方法,即委托链,又很方便的增加或删除某些方法。

它不知道或不关心自己引用的对象的类。任何对象都可以................这没意义呀。要调用另一个类里的方法,必须是已经实例化或者是静态方法才行呀?

List<Person> list = new List<Person>() {     new Person() { Name = "张三", Age = 19, EMail = "zhangsan#163-com" },     new Person() { Name = "李四", Age = 27, EMail = "lisi#163-com" },     new Person() { Name = "钱六", Age = 30, EMail = "qianliu#yahoo-com" } }; Person lisi = API.FindFirst(list, delegate (Person p) { return p.Name == "李四"; }); //下面一行是Linq的做法,多么简单。 //Person lisi = list.Where(x => x.Name == "李四").First(); Person useyahoo = API.FindFirst(list, delegate (Person p) { return p.EMail.Contains("yahoo-com"); }); Person whois30age = API.FindFirst(list, delegate (Person p) { return p.Age == 30; });

服务端:

C# code?1234567891011121314151617 class Person {     public string Name { get; set; }     public int Age { get; set; }     public string EMail { get; set; }  } class API {     public static Person FindFirst(List<Person> list, Action condition)     {         foreach (Person p in list)         {             if (condition(p)) return p;         }         return null;     } }


如果不用委托,请你设计一个方法,可以查找列表里面指定的数据,你看怎么设计更简单,怎么不用委托而直接调用。

设为首页 | 联系站长 | 友情链接 | 网站地图 |

copyright©youerw.com 优尔论文网 严禁转载
如果本毕业论文网损害了您的利益或者侵犯了您的权利,请及时联系,我们一定会及时改正。