日期:2014-05-17  浏览次数:20402 次

this
public static PagedList<T> ToPagedList<T>
  (
  this IQueryable<T> allItems,
  int pageIndex,
  int pageSize
  )
这种表示结构,该怎么解释,为什么把this IQueryable<T> allItems 写到参数里边?? 我知道 使用的时候可以 IQueryable<T>对象.ToPagedList(pageIndex,pageSize)


C# code

public static class PageLinqExtensions
    {
        public static PagedList<T> ToPagedList<T>
            (
                this IQueryable<T> allItems,
                int pageIndex,
                int pageSize
            )
        {
            if (pageIndex < 1)
                pageIndex = 1;
            var itemIndex = (pageIndex-1) * pageSize;
            var pageOfItems = allItems.Skip(itemIndex).Take(pageSize);
            var totalItemCount = allItems.Count();
            return new PagedList<T>(pageOfItems, pageIndex, pageSize, totalItemCount);
        }
    }




------解决方案--------------------
这个叫“扩展方法”,C# 3.0新增语法,具体什么是扩展方法,可以自己MSDN下。