इसलिए मैं अक्सर इस स्थिति में चला जाता हूं ... जहां Do.Something(...)एक अशक्त संग्रह लौटाता है, जैसे:
int[] returnArray = Do.Something(...);
फिर, मैं इस संग्रह का उपयोग करने की कोशिश करता हूं:
foreach (int i in returnArray)
{
// do some more stuff
}
मैं बस उत्सुक हूँ, क्यों एक फोड़ा लूप एक अशक्त संग्रह पर काम नहीं कर सकता? यह मेरे लिए तर्कसंगत लगता है कि 0 पुनरावृत्तियों को एक शून्य संग्रह के साथ निष्पादित किया जाएगा ... इसके बजाय यह फेंकता है a NullReferenceException। किसी को पता है कि यह क्यों हो सकता है?
यह कष्टप्रद है क्योंकि मैं एपीआई के साथ काम कर रहा हूं जो कि वे वापस लौटने पर बिल्कुल स्पष्ट नहीं हैं, इसलिए मैं if (someCollection != null)हर जगह समाप्त होता हूं ...
संपादित करें:foreach उपयोग करने के लिए समझाने के लिए आप सभी का धन्यवाद GetEnumeratorऔर अगर पाने के लिए कोई गणना करने वाला नहीं है, तो फॉरेक्स विफल हो जाएगा। मुझे लगता है कि मैं पूछ रहा हूं कि एन्यूमरेटर को हथियाने से पहले भाषा / रनटाइम क्यों नहीं कर सकता है या नहीं करेगा। यह मुझे लगता है कि व्यवहार अभी भी अच्छी तरह से परिभाषित किया जाएगा।
nullमान दिया जाए । क्या आप इसे केवल foreachछोरों या अन्य बयानों के लिए सुझा रहे हैं ?