使用泛型将child转换为parent
本文关键字:转换 parent child 泛型 | 更新日期: 2023-09-27 18:11:32
Class a <T> {
public T j;
}
class b:a <int> {
}
如果这不是一个泛型,那么你可以这样做:
a foo = new b();
是否对泛型情况做同样的处理?
有更好的方法吗?
您可以使用:
a<int> foo = new b();
您需要在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();
public static void Main()
{
Base<int> foo = new Derived();
}
class Base<T>
{
public T data;
}
class Derived:Base<int>
{
}