C# 泛型类型中的强制转换异常 公共类里昂证券 T:在哪里上课 其中T1:class { 公共T GetEntity() { 返回(T)新的clsB(); } }

C# 泛型类型中的强制转换异常 公共类里昂证券 T:在哪里上课 其中T1:class { 公共T GetEntity() { 返回(T)新的clsB(); } },c#,generics,C#,Generics,我收到错误无法将类型clsB转换为T 请帮助这是因为T可以是任何东西--string,这将导致强制转换失败。如果T不能是变量类型,则不要将其包含在泛型参数列表中 如果要允许T成为clsB或任何子类型,并且要构造该类的实例,请执行以下操作: public class clsA<T, T1> where T : class where T1 : class { public T GetEntity() { return (T) new cl

我收到错误无法将类型
clsB
转换为T


请帮助

这是因为
T
可以是任何东西--
string
,这将导致强制转换失败。如果
T
不能是变量类型,则不要将其包含在泛型参数列表中

如果要允许
T
成为
clsB
或任何子类型,并且要构造该类的实例,请执行以下操作:

public class clsA<T, T1>
    where T : class
    where T1 : class
{
    public T GetEntity()
    {
        return (T) new clsB<T1>();            
    }
}
公共类里昂证券
其中T:clsB,new()
其中T1:class
{
公共T GetEntity()
{
返回新的T();
}
}
然后,给定类型:

public class clsA<T, T1>
    where T : clsB<T1>, new()
    where T1 : class
{
    public T GetEntity()
    {
        return new T();
    }
}
公共类clsC:clsB{}

对类型为
clsA
的对象调用
GetEntity()
将构造并返回
clsC

的实例这是什么语言?你能给问题加上一个语言标签吗?
public class clsC : clsB<string> { }