Ho le seguenti classi e sto provando a chiamare Confronto metodo dalla classe ExportFileBaseBL ma ottengo l'erroreC# Generics - Richiamo metodo generico da una classe generica
Impossibile convertire implicitamente il tipo 'Class1' a 'T' . Esiste una conversione esplicita (che le manca un cast?)
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
}
}
}
Non dovrebbe la conversione di tipo implicita? Mi sto perdendo qualcosa?
Grazie Dan, che risponde alla mia domanda. – logik6
Jup jup, ora che abbiamo aggiunto un aggiornamento sulla digitazione del metodo di confronto sono d'accordo con la risposta. – jcolebrand