7
我真的很喜歡,能夠做到這一點在C#:強類型方法接口使用收益回報
IEnumerable GetThePizzas()
{
yield return new NewYorkStylePizza();
yield return new SicilianPizza();
yield return new GreekPizza();
yield return new ChicagoStylePizza();
yield return new HawaiianPizza();
}
而在Java中我會做這樣的:
Collection<Pizza> getThePizzas()
{
ArrayList<Pizza> pizzas = new ArrayList<Pizza>();
pizzas.add(new NewYorkStylePizza());
pizzas.add(new SicilianPizza());
pizzas.add(new GreekPizza());
pizzas.add(new ChicagoStylePizza());
pizzas.add(new HawaiianPizza());
return pizzas;
}
注意Java代碼告訴返回的類型(Pizza實例)。 C#代碼沒有。它讓我感到困惑,特別是在其他程序員無法訪問源代碼的情況下。有沒有辦法來解決這個問題?
更新:我的問題是,我使用「System.Collections」而不是「System.Collections.Generic」,因此我使用的是非泛型版本的IEnumerable。
System.Collections命名空間中的集合有點過時。除非您有充分理由使用舊的非泛型集合,否則請使用System.Collections.Generic命名空間中的泛型集合。 C#/ .NET中的所有花哨的東西,例如LINQ,都是圍繞通用的IEnumerable接口構建的。 –
dtb
2010-08-22 16:00:21
我看到...我只是缺少System.Collections.Generic的使用說明。這就是爲什麼它不起作用。 – asmo 2010-08-22 16:07:05
-1不包括MexicanHeatwavePizza,但是+2表示一個不錯的問題;) – Andy 2010-08-22 16:11:10