我有一个通用类
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;
}
但是它显示了一个像
这样的buld错误类型&#39; T&#39;必须是引用类型才能将其用作参数 &#39; T&#39;在通用类型或方法&#39; MyApplication.PagedData&#39;
中
请让我知道一个解决方案。 提前致谢
答案 0 :(得分: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>
- 这就是编译器抱怨的原因。 / p>