2017-08-09 6 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を使用しています...私はコンパイラ@nstraub VS 2013 – Kai

答えて

8

その構文は次のとおりです。形式的に表現ボディメンバーとして知られていましたが、C#6とVS 2015 C#コンパイラで導入されました。

以前のバージョンのVisual Studioではコンパイルされません。 C#5準拠のコードにリファクタリングする必要があります:

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

良い説明。本当にありがとう。 – Kai

関連する問題