public class clsA<T, T1>
where T : class
where T1 : class
{
public T GetEntity()
{
return (T) new clsB<T1>();
}
}
我收到错误无法将类型转换
clsB<T1>
为 T
请帮忙
那是因为T
可以是任何东西——string
例如,这会导致演员阵容失败。如果T
不能是变量类型,则不要将其包含在泛型参数列表中。
如果您想允许T
是clsB<T1>
或任何子类型,并且您想构造该类的实例,那么请改为:
public class clsA<T, T1>
where T : clsB<T1>, new()
where T1 : class
{
public T GetEntity()
{
return new T();
}
}
然后,给定类型:
public class clsC : clsB<string> { }
调用GetEntity()
类型的对象clsA<clsC, string>
将构造并返回clsC
.