2014-03-12 55 views
0

我有一个泛型类如何延长一个泛型类,并返回在C#泛型类

public class PagedData<T> where T : class 
{ 
     public IEnumerable<T> Data { get; set; } 
     public int CurrentPage { get; set; } 
     public int TotalRowCount { get; set; } 
     public int RowsPerPage { get; set; } 
     public int NumberOfPages { get; set; } 
} 

我要扩展上面的类如下图所示

public static PagedData<T> PagedResult<T>(this List<T> list) 
{ 
    //some logic and return result as type PagedData<T> 
    return null; 
} 

但它显示一个像

类型“T”必须是引用类型,以便在通用类型或方法“使用它作为参数 “T”球泡错误我Application.PagedData'

请让我知道一个解决方案。 在此先感谢

回答

4

由于类PagedData<T>对类型参数T的约束,你必须明确地复制在自己的方法约束:

public static PagedData<T> PagedResult<T>(this List<T> list) where T : class 
{ 
    //some logic and return result as type PagedData<T> 
    return null; 
} 

如果你不这样做,它会可能“调用PagedResult<int>,但它不可能返回PagedData<int> - 这就是编译器抱怨的原因。

+0

它正在工作...谢谢... – Razack