我从头开始阅读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
答案 0 :(得分:1)
帮手方法是猴子补丁的.net方式!
假设你有一个Foo,某个地方有人写过你无法改变它。现在你要:
var foo = new Foo();
var something = foo.NotThere();
NotThere功能不在foo中,该做什么,该怎么办?为什么不是辅助方法:
static class FooHelperThingy{
static string NotThere(this Foo foo){
return "Bar!!!";
}
}
瞧,你可以致电foo.NotThere()
。 (如果你有一个使用指向辅助方法所在的命名空间,它就可以工作。)
标记为this的参数将是您正在修补的对象。