我的C#技能低,但我不明白爲什麼以下故障:C#泛型和接口和簡單OO
public interface IQuotable {}
public class Order : IQuotable {}
public class Proxy {
public void GetQuotes(IList<IQuotable> list) { ... }
}
然後代碼如下:
List<Order> orders = new List<Orders>();
orders.Add(new Order());
orders.Add(new Order());
Proxy proxy = new Proxy();
proxy.GetQuotes(orders); // produces compile error
上午我只是做錯了什麼,沒有看到它?由於Order實現Quotable,所以秩序列表將以IList的形式出現。我有類似於Java的東西,它的工作原理,所以我很確定它缺少C#知識。
謝謝!我的思想總是List是IList的具體實現。順序是相同的(但是當然可以有更多的IQuotables,所以只要他們用IQuotable實現IList就可以傳遞任何東西,顯然情況並非如此,所以我必須閱讀協變性。 net 2,因爲這是一個CLR存儲過程,只能使用.net 2。最後,我使用了你的第二個例子,我認爲它是有意義的,並完成我所需要的。 – Daniil