2017-08-09 95 views
1
public class PaginationHelper<T> : IPagination<T> 
{ 
    public int PageNumber { get; set; } 
    public int PageSize { get; set; } 
    public IList<T> Items { get; set; } 
    public IList<T> PaginationItems => AsPagination(); 
    public int TotalItems { get; set; } 
    public int FirstItem => (PageNumber - 1) * PageSize + 1; 

    public int LastItem => FirstItem + PageSize - 1; 

    public int TotalPages 
    { 
     get 
     { 
      var result = (int)Math.Ceiling((double)TotalItems/PageSize); 
      return result == 0 ? 1 : result; 
     } 
    } 

    public bool HasPreviousPage => PageNumber > 1; 

    public bool HasNextPage => PageNumber < TotalPages; 

    public List<T> AsPagination() 
    { 
     var numberToSkip = (PageNumber - 1) * PageSize; 
     var results = Items.Skip(numberToSkip).Take(PageSize).ToList(); 
     return results; 
    } 
} 

public class Paginator<T> 
{ 
    public List<T> PaginationItems { get; set; } 
    public int TotalPages { get; set; } 
} 

我的朋友給了我這個代碼,我無法編譯。在C#中定義一個屬性/方法時,是否有可能以這種方式使用? public int FirstItem =>(PageNumber - 1)* PageSize + 1;這是正確的語法?屬性/方法定義

+1

什麼版本的Visual Studio您使用的?該語法是在VS 2015 – BradleyDotNET

+0

中引入的,您能否給我們提供具體的錯誤?或者它只是說語法錯誤...如果是這樣,在哪一行? –

+0

@BradleyDotNET我使用VS 2013 ... – Kai

回答

8

這句法;正式地稱爲一個表達健全構件在C#6和VS 2015 C#編譯器進行了介紹。

早期版本的Visual Studio不會編譯它;你將不得不重構到C#5兼容的代碼:

public int FirstItem { get { return (PageNumber - 1) * PageSize + 1; } } 
+0

好的解釋。非常感謝。 – Kai