Así que con frecuencia me encuentro con esta situación ... donde Do.Something(...)devuelve una colección nula, así:
int[] returnArray = Do.Something(...);
Entonces, trato de usar esta colección así:
foreach (int i in returnArray)
{
// do some more stuff
}
Solo tengo curiosidad, ¿por qué un bucle foreach no puede funcionar en una colección nula? Me parece lógico que 0 iteraciones se ejecuten con una colección nula ... en su lugar, arroja un NullReferenceException. Alguien sabe por qué esto podría ser?
Esto es molesto ya que estoy trabajando con API que no tienen claro exactamente lo que devuelven, así que termino en if (someCollection != null)todas partes ...
Editar: Gracias a todos por explicar esos foreachusos GetEnumeratory si no hay un enumerador para obtener, el foreach fallará. Supongo que estoy preguntando por qué el lenguaje / tiempo de ejecución no puede o no hará una comprobación nula antes de tomar el enumerador. Me parece que el comportamiento aún estaría bien definido.
nullvalor. ¿Sugieres esto solo para foreachbucles u otras declaraciones?