Bu yüzden sık sık bu duruma girerim ... burada Do.Something(...)null bir koleksiyon döndürür, şöyle:
int[] returnArray = Do.Something(...);
Sonra, bu koleksiyonu böyle kullanmaya çalışıyorum:
foreach (int i in returnArray)
{
// do some more stuff
}
Sadece merak ediyorum, bir foreach döngüsü null koleksiyonda neden çalışamıyor? 0 yinelemenin boş bir koleksiyonla yürütülmesi mantıklı görünüyor ... bunun yerine a NullReferenceException. Bunun neden olabileceğini bilen var mı?
Tam olarak ne döndüklerini açık olmayan API'lerle çalıştığım için bu can sıkıcı, bu yüzden if (someCollection != null)her yerde bitirdim ...
Düzenleme: Bu foreachkullanımları açıklamak için hepinize teşekkür ederiz GetEnumeratorve almak için bir numaralandırıcı yoksa, foreach başarısız olur. Sanırım, numaralandırıcıyı yakalamadan önce dilin / çalışma zamanının neden boş bir denetim yapamayacağını veya yapmayacağını soruyorum. Bana öyle geliyor ki davranış hala iyi tanımlanmış olacak.
null. Bunu sadece foreachdöngüler veya diğer ifadeler için mi öneriyorsunuz ?