My C# kỹ năng này là thấp, nhưng tôi không thể hiểu tại sao thất bại sau:C Generics # và các giao diện và OO đơn giản
public interface IQuotable {}
public class Order : IQuotable {}
public class Proxy {
public void GetQuotes(IList<IQuotable> list) { ... }
}
Sau đó, các mã như sau:
List<Order> orders = new List<Orders>();
orders.Add(new Order());
orders.Add(new Order());
Proxy proxy = new Proxy();
proxy.GetQuotes(orders); // produces compile error
Am I chỉ đơn giản là làm điều gì đó sai và không nhìn thấy nó? Vì Order thực hiện báo giá, một danh sách thứ tự sẽ đi vào như IList của quoatables. Tôi có một cái gì đó như trong Java và nó hoạt động, vì vậy tôi khá chắc chắn của nó thiếu kiến thức C#.
Cảm ơn bạn! Suy nghĩ của tôi luôn là Danh sách là việc thực hiện cụ thể IList. Thứ tự là như nhau (nhưng có thể có nhiều IQuotables tất nhiên. Vì vậy, tôi có thể vượt qua bất cứ điều gì vào phương pháp miễn là họ thực hiện IList với IQuotable. Rõ ràng đó không phải là trường hợp vì vậy tôi phải đọc lên hiệp phương sai. net 2 vì đây là một thủ tục lưu trữ CLR mà chỉ mất .net 2. Cuối cùng, tôi đã sử dụng ví dụ thứ 2 của bạn mà, tôi nghĩ, có ý nghĩa và làm những gì chính xác những gì tôi cần. – Daniil