2010-11-20 2 views
0

У меня есть абстрактный универсальный класс:общие базовый класса, где T является другим общим базовым классом

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; 
    } 
} 

Как я могу это сделать?

ответ

3
public abstract class SomeOtherBaseClass<T1, T2, U, V> 
    where T1 : SomeBaseClass<U, V> 
1

Это может дать вам то, что вам нужно:

public abstract class SomeOtherBaseClass<U, V, T2> 
{ 
    private readonly SomeBaseClass<U, V> _someBaseClass; 

    public SomeOtherBaseClass(SomeBaseClass<U, V> someBaseClass) 
    { 
     _someBaseClass = someBaseClass; 
    } 
} 
0
public abstract class SomeOtherBaseClass<T1, T2> where T1 : SomeBaseClass<T1,T2> 
+0

'SomeBaseClass' не определил это первый аргумент типа' U' рефлексивным, так что это не правильно. Кроме того, ОП не дал никаких указаний на то, что аргументы типа для двух базовых классов были связаны. –

Смежные вопросы