2
新到C#和#1 ......請隨時指出這應該是不同的或其他地方問如何通過「詞典」作爲字典<x,Interface>」
考慮:
public interface IPoint {...}
public struct DeliveryPoint : IPoint {...}
和生成一個字典具有大量的投遞點代碼:
...
Dictionary<uint,DeliveryPoint> dict = new Dictionary<uint,DeliveryPoint>();
...
的點現在需要被傳遞到例程requir ES接口類型:
public void doSomething(Dictionary<uint,IPoint> dict) { ...}
想過我可以做這樣的事情:
doSomething(dict);
只有解決辦法,我發現是創建一個新的列表,並複製所有這些似乎點擊敗實施界面的全部目的。
有沒有更好的方法?
問題是IDictionary不是協變的,它是不變的。 – Shoe 2015-04-04 02:22:06
最簡單的變化就是使它成爲'新詞典()'。 –
user2864740
2015-04-04 02:22:44
注意:「創建一個新的列表並複製所有的點」聽起來像是一個奇怪的解決方案,通過'字典'...... –
2015-04-04 02:35:23