2014-10-25 4 views
0

Как создать метод расширения для универсального типа?Метод расширения с общим типом

Код ниже возвращение ошибки

метода расширения может быть объявлен только в нетипичном, невложенном статическом классе

Код:

public static class PagedList<T> where T : BaseEntity 
{ 
    public static IEnumerable<T> ToPagedList(this IEnumerable<T> source, int pageNumber = 0, int pageSize = 5) 
    { 
     return source.Skip(pageNumber * pageSize).Take(pageSize); 
    } 
} 

Любого дальнейшее осуществление с это делает эту работу?

+0

Возможный дубликат [Почему невозможно объявить методы расширения в родовом статическом классе?] (Http://stackoverflow.com/questions/2618271/why-is-it-impossible-to-declare-extension-methods -in-a-generic-static-class) –

ответ

2

Укажите общие типы непосредственно в методе и сделайте класс, так как ошибка говорит о статическом и неэквивалентном.

public static class PagedList 
{ 
    public static IEnumerable<T> ToPagedList<T>(this IEnumerable<T> source, 
     int pageNumber = 0, int pageSize = 5) where T : BaseEntity 
    { 
     return source.Skip(pageNumber * pageSize).Take(pageSize); 
    } 
} 
+0

Хороший .. Реализация этого .. –

+0

@SSS Надеюсь, что это помогло;) –

0

Вы должны слушать сообщение об ошибке, вы должны объявить метод расширения внутри необщего класса.

+0

да, я пропустил его .. –