0

我已经从头开始阅读 NerdDinner 教程。在阅读和编码应用程序时,我开始讨论一些 Helper 方法,并且有某个类的一个示例(AddRuleViolations),但没有任何解释在何处添加此类。所以我跳过了这个并继续教程,稍后在代码中没有使用这个类。
现在,我被困在“添加页面导航 UI ”部分,该帮助方法再次使用。所以,我下载了他们的最终代码,我看到有文件夹“Helpers”和我需要在我的代码中实现的这些类。事情是我不想复制/粘贴,我想了解如何添加这个辅助方法。
具体来说,我想将此类添加为辅助方法:

    public class PaginatedList<T> : List<T>
    {
        public int PageIndex { get; private set; }
        public int PageSize { get; private set; }
        public int TotalCount { get; private set; }
        public int TotalPages { get; private set; }
        public PaginatedList(IQueryable<T> source, int pageIndex, int pageSize)
        {
            PageIndex = pageIndex;
            PageSize = pageSize;
            TotalCount = source.Count();

            TotalPages = (int)Math.Ceiling(TotalCount / (double)PageSize);
            this.AddRange(source.Skip(PageIndex * PageSize).Take(PageSize));
        }
        public bool HasPreviousPage
        {
            get
            {
                return (PageIndex > 0);
            }
        }
        public bool HasNextPage
        {
            get
            {
                return (PageIndex + 1 < TotalPages);
            }
        }
    }

问题是我对 .net 或 C# 没有任何经验,而且我不熟悉在 VS 中开发应用程序。(我只知道 C# 的一些基础知识)

谢谢,
Ile

4

1 回答 1

1

辅助方法是猴子补丁的 .net 方法!

假设你有某个地方有人写的 Foo 类,你不能改变它。现在你想:

var foo = new Foo();
var something = foo.NotThere();

foo中没有NotThere函数,怎么办,怎么办?为什么不是辅助方法:

static class FooHelperThingy{
  static string NotThere(this Foo foo){
    return "Bar!!!";
  }
}

瞧,你可以打电话foo.NotThere()。(如果你有一个 Using 指向辅助方法所在的命名空间,它就可以工作。)

标记为 this 的参数将是您正在猴子修补的对象。

于 2010-02-19T12:51:30.373 回答