Tôi có các lớp sau đây và tôi đang cố gắng để gọi Hãy so sánh phương pháp từ lớp ExportFileBaseBL nhưng tôi nhận được lỗiC# Generics - Việc gọi method generic từ một lớp generic
Không thể ngầm chuyển đổi loại 'Class1' thành 'T' . Một chuyển đổi rõ ràng tồn tại (bạn có bỏ lỡ một dàn diễn viên không?)
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
}
}
}
Không nên chuyển đổi loại? Tui bỏ lỡ điều gì vậy?
Cảm ơn Dan, câu trả lời cho câu hỏi của tôi. – logik6
Jup jup, bây giờ chúng tôi đã thêm một cập nhật về cách gõ so sánh, tôi đồng ý với câu trả lời. – jcolebrand