7

假设我有一个通用类。

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

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

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

上面的方法不会编译,因为我没有提供类型参数。但是,如果我希望这种方法不管类型如何都可以工作。也就是说,我希望此方法对PagerInfo实例进行操作,而不管其类型如何。而且我的方法不会访问任何特定于类型的方法或属性。

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

4

1 回答 1

9

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

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

public class PagerInfo<T> : PagerInfo
{
    // Generic members
}
public void Pagination(PagerInfo pagerInfo)
{
    // ...
}
于 2013-02-24T19:22:28.870 回答