我已經簡化並在下面的代碼中再現了我的問題。我收到的錯誤是:參數1:無法從'System.Collections.ObjectModel.Collection'轉換爲'System.Collections.ObjectModel.CollectionC#將一個集合作爲一組接口傳遞
導致此問題的設計決策的一些背景:我有創建了一個用於處理「IFruit」的Web服務,但由於我理解SOAP和端點綁定的本質,我創建了明確實現IFruit的方法。在業務層上,爲每個特定的水果實現創建一個單獨的方法將首先導致大量重複的代碼,其次將業務和服務層緊密耦合,以便以後在Web服務中接受新的IFruit類型也需要更改我的代碼在業務層(增加冗餘代碼的另一個副本)。這個設計是我過去使用Java成功實現的,但是C#接口似乎與我不一樣。請指教。
public interface IFruit{
public string TakeBite();
}
public Apple : IFruit{
public string TakeBite(){
return "tasty bite of apple";
}
}
public void EatFruit(Collection<IFruit> fruits){
foreach(var fruit in fruits){
Console.WriteLine(fruit.TakeBite());
}
}
public void EatApples(Collection<Apple> apples){
this.EatFruit(apples);
}
謝謝。這編譯。現在更新我的單元測試。 – YouGotCSharpInMyJava 2012-07-06 18:08:36