A类是通用的:A<T>
。另一个班级B
有一个方法&#34; getA&#34;应该返回A的实例。是否可以将此方法定义为&#34; A getA()
&#34;,而不指定签名中返回的A实例的类型?
如果不可能,唯一的解决方案是将B定义为B<T>
,然后将方法定义为&#34; A<T> getA()
&#34;?感觉有点麻烦,因为B本身不一定是通用类型。
感谢。
答案 0 :(得分:2)
制作一些与A一起操作的界面并将其返回
public class A<T> : IAOperationInterface
{
}
public class B
{
public IAOperationInterface getA()
{
return //... some build code.....
}
}
...或
public class B<T>
{
public IAOperationInterface getA()
{
return new A<T>()
}
}
答案 1 :(得分:-1)
您可以在非泛型类B中定义泛型方法:
class B
{
public A<T> GetA<T>()
{
return new A<T>();
}
}
但是,不清楚这是否是你想要的。