首页 > C# 委托和泛行 在项目中解决什么问题 他们都用在什么地方 解决什么问题?

C# 委托和泛行 在项目中解决什么问题 他们都用在什么地方 解决什么问题?

如题,希望大家解释平常项目中用到的例子!!!


委托太常见啦,你用没用过事件?有没有自己绑定过Event?那个其实就是委托的常见应用之一。


泛型在算法和模型中很常见,你用的List就是泛型的应用,如果你做MVC Web应用,需要自己写分页扩展,假如“商品列表”和“会员列表”都需要分页功能,那么你不会给两种都各写一个分页扩展方法吧?这个时候你只要用泛型写一个

IEnumerable<T> ToPageList(this IEnumerable<T> query, curPage, pageSize) { ... }

然后你的你就可以类似下面的方法用:

var userList = 
(from item in User
where item.age >= 18
select item).ToPageList(1, 50); // 每页50条,取得第一页的数据

*上面代码手打,未经考证,仅作示意……


委托就是c#中的闭包(函数对象)啊。闭包就是一段代码加上所需的上下文,你可以理解为闭包用于储存一段代码逻辑。闭包这个概念是共性的,但是反映到具体的编程语言里,形态就五花八门了。比如java里的函数式接口(functional interface)就是闭包,c++的std::function也是闭包。

根据支持闭包的差异,可以将语言分为两种,一些语言中函数是第一等的,也就是说所有函数都是闭包,比如python和javascript,而另外一些语言,比如c#、java、c++,普通函数不是闭包,闭包用特定的类表示。

【热门文章】
【热门文章】