如何接受任何类型的泛型论证?

时间:2013-02-24 19:13:15

标签: c# generics

假设我有一个通用类。

public class PagerInfo<T>
{
    // ...
}

我想将此类的实例传递给另一个类中的方法。

public void Pagination(PagerInfo pagerInfo)
{
    // ...
}

上面的方法无法编译,因为我没有提供类型参数。但是,如果我希望这种方法无论何种类型都能工作,该怎么办?也就是说,我希望此方法在PagerInfo个实例上运行,而不管其类型如何。并且我的方法不会访问任何特定于类型的方法或属性。

另外,请注意我的实际方法是在ASP.NET MVC cshtml辅助方法中,而不是常规的cs文件。

1 个答案:

答案 0 :(得分:5)

如果方法不访问使用泛型类型参数的类型的成员,则通常定义泛型类型派生的非泛型基类型:

public abstract class PagerInfo
{
    // Non-generic members
}

public class PagerInfo<T> : PagerInfo
{
    // Generic members
}
public void Pagination(PagerInfo pagerInfo)
{
    // ...
}