Class a <T> {
public T j;
}
class b:a <int> {
}
如果这不是通用的,那么您可以执行以下操作:
a foo = new b();
无论如何都要对通用案例做同样的事情吗?
有更好的方法吗?
答案 0 :(得分:5)
您可以使用:
a<int> foo = new b();
答案 1 :(得分:1)
您需要在a
中声明的通用参数:
class a<T>
{
public T j;
}
您还需要b
能够从a
派生出来:
class b<T> : a<T> { }
然后您可以将b<T>
投射到a<T>
:
a<int> foo = new b<int>();
或者您可以从特定的a
class b : a<int> { }
然后施放:
a<int> foo = new b();
答案 2 :(得分:0)
public static void Main()
{
Base<int> foo = new Derived();
}
class Base<T>
{
public T data;
}
class Derived:Base<int>
{
}