【发布时间】:2012-06-09 18:00:22
【问题描述】:
我有一个场景,其中有两个类分别使用方法 MethodA 和 MethodB 说 ClassA 和 ClassB。我必须编写泛型方法,根据某些整数变量 x 的条件返回上述类的对象实例。当我尝试下面的代码时,我收到一条错误消息“无法将 ClassA 隐式转换为 T”或“无法将 ClassB 隐式转换为 T”
public ClassA
{
public void MethodA()
{
//method implementation
}
}
public ClassB
{
public void MethodB()
{
//method implementation
}
}
泛型方法为
public T MethodGeneric<T>()
{
int x;
ClassA objectA = new ClassA();
ClassB objectB = new ClassB();
if(x==2)
{
return objectA;
}
else
{
return objectB;
}
}
【问题讨论】:
-
给 ClassA 和 B 一个通用的基类或接口,并将 T 限制为该类型。
-
- 或者只是转换:“return (T)objectA;”等等
-
@500-InternalServerError 然后,当有人说
MethodGeneric<SomeOtherClass>时,他们会回复您的同名作为响应。 -
我想我明白你的意思了,但从例子中看不出 type 参数的目的是什么。
-
@500-InternalServerError 同意。你的名字太容易开玩笑了,我无法抗拒。