从方法(C#)返回泛型类的实例

时间:2017-04-03 15:48:33

标签: c# generics

A类是通用的:A<T>。另一个班级B有一个方法&#34; getA&#34;应该返回A的实例。是否可以将此方法定义为&#34; A getA()&#34;,而不指定签名中返回的A实例的类型?

如果不可能,唯一的解决方案是将B定义为B<T>,然后将方法定义为&#34; A<T> getA()&#34;?感觉有点麻烦,因为B本身不一定是通用类型。

感谢。

2 个答案:

答案 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>();
    }
}

但是,不清楚这是否是你想要的。