Mam następujące klasy i próbuję zadzwonić Porównanie metody z klasy ExportFileBaseBL ale pojawia się błądC# rodzajowych - wywołanie metody rodzajowe z ogólnej klasy
nie można niejawnie przekonwertować typu „Class1” na „T” . Wyraźna przemiana istnieje (czy brakuje obsady?)
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
}
}
}
nie powinien być typu konwersja niejawna? Czy czegoś brakuje?
Dzięki Dan, to odpowiada na moje pytanie. – logik6
Jup Jup, teraz, gdy dodaliśmy aktualizację na temat metody porównywania, zgadzam się z odpowiedzią. – jcolebrand