C# 泛型基类,其中T是其他泛型基类
我有一个抽象的泛型类:C# 泛型基类,其中T是其他泛型基类,c#,generics,C#,Generics,我有一个抽象的泛型类: public abstract class SomeBaseClass<U,V> { } public abstract class SomeOtherBaseClass<T1, T2> where T1 : SomeBaseClass<U,V> { private readonly T1 _someBaseClass; public SomeOtherBaseClass(T1 someBaseClass)
public abstract class SomeBaseClass<U,V>
{
}
public abstract class SomeOtherBaseClass<T1, T2> where T1 : SomeBaseClass<U,V>
{
private readonly T1 _someBaseClass;
public SomeOtherBaseClass(T1 someBaseClass)
{
_someBaseClass = someBaseClass;
}
}
公共抽象类SomeBaseClass
{
}
我想创建其他泛型类:
public abstract class SomeBaseClass<U,V>
{
}
public abstract class SomeOtherBaseClass<T1, T2> where T1 : SomeBaseClass<U,V>
{
private readonly T1 _someBaseClass;
public SomeOtherBaseClass(T1 someBaseClass)
{
_someBaseClass = someBaseClass;
}
}
公共抽象类SomeOtherBaseClass,其中T1:SomeBaseClass
{
私有只读T1_someBaseClass;
公共SomeOtherBaseClass(T1 someBaseClass)
{
_someBaseClass=someBaseClass;
}
}
我如何才能做到这一点?公共抽象类SomeOtherBaseClass
public abstract class SomeOtherBaseClass<T1, T2, U, V>
where T1 : SomeBaseClass<U, V>
其中T1:SomeBaseClass
公共抽象类SomeOtherBaseClass
其中T1:SomeBaseClass
这可能会满足您的需求:
public abstract class SomeOtherBaseClass<U, V, T2>
{
private readonly SomeBaseClass<U, V> _someBaseClass;
public SomeOtherBaseClass(SomeBaseClass<U, V> someBaseClass)
{
_someBaseClass = someBaseClass;
}
}
公共抽象类SomeOtherBaseClass
{
私有只读SomeBaseClass\u SomeBaseClass;
公共SomeOtherBaseClass(SomeBaseClass SomeBaseClass)
{
_someBaseClass=someBaseClass;
}
}
这可能会满足您的需求:
public abstract class SomeOtherBaseClass<U, V, T2>
{
private readonly SomeBaseClass<U, V> _someBaseClass;
public SomeOtherBaseClass(SomeBaseClass<U, V> someBaseClass)
{
_someBaseClass = someBaseClass;
}
}
公共抽象类SomeOtherBaseClass
{
私有只读SomeBaseClass\u SomeBaseClass;
公共SomeOtherBaseClass(SomeBaseClass SomeBaseClass)
{
_someBaseClass=someBaseClass;
}
}
公共抽象类SomeOtherBaseClass,其中T1:SomeBaseClass
公共抽象类SomeOtherBaseClass,其中T1:SomeBaseClass
SomeBaseClass
没有将其第一个类型参数U
定义为自反,因此这是不正确的。此外,OP没有指出两个基类的类型参数是相关的。SomeBaseClass
没有将其第一个类型参数U
定义为自反的,因此这是不正确的。此外,OP没有指出这两个基类的类型参数是相关的。