假设我有一个通用类。
public class PagerInfo<T>
{
// ...
}
我想将此类的实例传递给另一个类中的方法。
public void Pagination(PagerInfo pagerInfo)
{
// ...
}
上面的方法无法编译,因为我没有提供类型参数。但是,如果我希望这种方法无论何种类型都能工作,该怎么办?也就是说,我希望此方法在PagerInfo
个实例上运行,而不管其类型如何。并且我的方法不会访问任何特定于类型的方法或属性。
另外,请注意我的实际方法是在ASP.NET MVC cshtml辅助方法中,而不是常规的cs文件。
答案 0 :(得分:5)
如果方法不访问使用泛型类型参数的类型的成员,则通常定义泛型类型派生的非泛型基类型:
public abstract class PagerInfo
{
// Non-generic members
}
public class PagerInfo<T> : PagerInfo
{
// Generic members
}
public void Pagination(PagerInfo pagerInfo)
{
// ...
}