ASP.NET MVC 中出现的 方法 中的 this 关键字 用法 (this HtmlHelper helper)
2015-07-20 11:08
603 查看
ASP.NET MVC 中出现的 方法 中的 this 关键字 用法 (this HtmlHelper helper)
最近在看ASP.NET 的MVC2编程模型,发现里面有一种很奇怪的this用法,以前从没有见过,经过2个小时的翻阅资料查找终于得出了结论,和大家分享一下(可能理解有不全面的地方,希望大家指正)
最近在看ASP.NET 的MVC2编程模型,发现里面有一种很奇怪的this用法,以前从没有见过,经过2个小时的翻阅资料查找终于得出了结论,和大家分享一下(可能理解有不全面的地方,希望大家指正)
public static string ScheduleEntries(this HtmlHelper helper, ...)这个是我在一个外国论坛上搜到的问题,下面有句回答是:The way it works for MVC is that
Htmlin the view is a property of HtmlHelper type on the ViewPage class.我大概理解了下,意思好像是说 “把视图中的HTML作为一个htmlhelper类型的属性”,这里面的Html只什么一直不是很明白,猜测应该是指只当前对象吧,也就是把当前对象作为HtmlHelper的一个参数。通过这句话我只能理解到这里了。后来又看到了一个MVC写的分页控件,里面也有同样的写法:
public static IPagedList<T> ToPagedList<T>(this IEnumerable<T> source, int pageIndex, int pageSize, int totalCount) { return new PagedList<T>(source, pageIndex, pageSize, totalCount); }然后看了下是怎么调用该方法的,发现只要是继承了IEnumerable<T>接口的都可以调用该方法,并且第一个参数隐藏了,这样就比较清晰了,这里的ToPagedList<T>(…)方法被添加到继承接口IEnumerable<T>的类中,此方法带有this的那个参数则自动默认为拥有该方法的当前对象,理解了这些就可以在方法体中大胆的发挥了。
private IList<Product> allProducts = new List<Product>(); IpagedList<Product> ProductList this.allProducts.ToPagedList(currentPageIndex, defaultPageSize)上面两行代码是对如何调用拥有this关键字方法的举例,希望能给大家起到帮助,帮助大家理解。有不对的地方,也欢迎大家指正.
相关文章推荐
- asp.net使用百度的webuploader批量上传图片
- ASP.NET web.config中<customErrors>节点说明
- ASP.NET发布WebService
- ASP.NET菜鸟之路之实现新闻列表增删改
- asp.net 数据库面试题(基础)
- ASP.NET Web API如何将注释自动生成帮助文档
- asp.net中用soapheader作验证的使用步骤: 很简单
- asp.net 2.0中傻瓜式使用soap header
- asp.net 缓存
- VS2010部署Asp.net程序到本地IIS 7
- (转)ASP.NET前台代码绑定后台变量方法总结
- onClick和onclientclick区别
- Spring基于注解@AspectJ的AOP
- 架构设计(ASP.NET MVC+Knockout+Web API+SignalR)
- ASP.NET MVC 之控制器与视图之间的数据传递
- Asp.Net中WebServices的调用方式
- ASP.net后台弹出消息对话框的方法!【转】
- spring AspectJ的Execution表达式-备忘笔记(转)
- ASP.NET - 缓存(Cache)
- ASP.NET2.0下实现分布式StateServer(状态服务器)