C # Generics - Вызов универсального метода из универсального класса

У меня есть следующие классы, и я пытаюсь вызвать метод Compare из класса ExportFileBaseBL, но получаю сообщение об ошибке

Невозможно неявно преобразовать тип «Class1» в «T». Явный преобразование существует (вам не хватает приведений?)

public abstract class Class1<T> where T: Class2
{
    public abstract Class1<T> Compare(Class1<T> otherObj);
}

public abstract class Class3<T, U> where T: Class1<U>
                         where U: Class2
{
    public T Compare(T obj1, T obj2)
    {
        if (obj1.Prop1 > obj2.Prop1)
        {
            return obj1.Compare(obj2); // Compiler Error here
        }
        else
        {
            return obj2.Compare(obj1);  // Compiler Error here
        }
    }

}

Не следует ' t преобразование типа быть неявным? Я что-то упустил?

5
задан Adam Crossland 2 February 2011 в 17:18
поделиться