我在我的库中使用三个类:
public abstract class Base<TFirst, TSecond>
{
public Base()
{
// actions with ID and Data of TFirst and TSecond
}
}
public abstract class First<TFirstID, TFirstData>
{
public TFirstID ID {get; set;}
public TFirstData Data {get; set;}
}
public abstract class Second<TSecondID, TSecondData>
{
public TSecondID ID {get; set;}
public TSecondData Data {get; set;}
}
如何指定TFirst必须从First继承,TSecond必须从Second继承,而不使用Base中的泛型类型ID和Data?
像这样:
public abstract class Base<TFirst, TSecond>
where TFirst : First // without generic-types
...
编辑: 在 First 和 Second 类中,我使用 TFirstID 和 TSecondID 作为属性。在 Base 类中,我使用这些属性。
where TFirst : First<int,int>
吗?我认为你不能这样做,我想Haskell允许类似这样的操作,但不确定。 - gideon