2010-02-19 23 views
0

我已經從頭開始閱讀NerdDinner教程。在閱讀和編碼應用程序時,我介紹了一些Helper方法,並且有一個類的例子(AddRuleViolations),但沒有任何解釋添加此類的地方。所以我跳過了這個,繼續教程,後來在代碼中沒有使用這個類。
現在,我被困在「添加頁面導航UI」部分,其中此輔助方法再次被使用。所以,我下載了他們的最終代碼,我看到有文件夾「助手」和我需要在我的代碼中實現的這些類。事情是,我不想做複製/粘貼,我想了解如何添加這個幫手方法。
具體來說,我想這個類添加爲輔助方法:NerdDinner教程 - 缺少Helper方法的解釋?

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#的一些基礎知識)

感謝,

回答

1

helper方法是一個.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()。 (如果你有一個使用指向命名空間的輔助方法所在的地方,它就可以工作。)

標記了這個參數將成爲猴子補丁的對象。

+0

我想知道如何將其添加到項目。我是否創建新的文件夾「助手」,然後點擊它並添加新的課程,然後只複製粘貼我的課程在那裏......?它可以提供還是還有其他的事情要做? – 2010-02-19 12:56:03

+0

「它的工作原理是,如果你有一個使用幫助器方法所在的命名空間」我看,這是至關重要的 – 2010-02-19 12:59:22

+0

是的,關鍵是這個詞。 (注意:在ASP.NET中,您可以在web.config中添加默認名稱空間,這樣您就不必將它們包含在您的視圖中,只需少量代碼即可)。 – svinto 2010-02-19 14:47:14