मैं वास्तव में आनंद लेने के सी # में यह करने के लिए सक्षम होने के लिए:जोरदार टाइप विधि इंटरफ़ेस उपज का उपयोग कर लौटने
IEnumerable GetThePizzas()
{
yield return new NewYorkStylePizza();
yield return new SicilianPizza();
yield return new GreekPizza();
yield return new ChicagoStylePizza();
yield return new HawaiianPizza();
}
जबकि जावा में मुझे लगता है कि जैसे कि यह किया होता:
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;
}
सूचना है कि जावा कोड किस प्रकार लौटाया जाता है (पिज्जा उदाहरण) बताता है। सी # कोड नहीं है। यह मुझे खराब करता है, खासकर उन स्थितियों में जहां अन्य प्रोग्रामर के पास स्रोत कोड तक पहुंच नहीं है। क्या इसे ठीक करने का कोई तरीका है?
अद्यतन: मेरे समस्या यह है कि मैं "System.Collections" के बदले "System.Collections.Generic" का इस्तेमाल किया है और इसलिए मैं IEnumerable के गैर सामान्य संस्करण का उपयोग कर रहा था।
System.Collections नाम स्थान में संग्रह कुछ हद तक पदावनत कर रहे हैं। सिस्टम से सामान्य संग्रह का उपयोग करें। चयन। जेनेरिक नेमस्पेस जब तक आपके पास पुराने, गैर-जेनेरिक संग्रहों का उपयोग करने का कोई अच्छा कारण न हो। सी #/नेट में सभी फैंसी सामान जैसे कि LINQ जेनेरिक आईनेमेरेबल इंटरफ़ेस के आसपास बनाया गया है। –
dtb
मैं देखता हूं ... मैं बस सिस्टम के लिए उपयोग निर्देश याद कर रहा था। चयन। जेनेरिक। यही कारण है कि यह काम नहीं कर रहा था। – asmo
-1 मैक्सिकनहेटवेव पिज्जा सहित, लेकिन एक अच्छा प्रश्न के लिए +2;) – Andy