Cuando entro en esta declaración foreach
...¿Por qué var evalúa a System.Object en "foreach (var row in table.Rows)"?
foreach (var row in table.Rows)
... La descripción de var dice class System.Object
estoy confundido por qué no es class System.Data.DataRow
.
(En caso de que se esté preguntando, sí, tengo using System.Data
en la parte superior de mi archivo de código.)
Si declaro el tipo de forma explícita, como en ...
foreach (DataRow row in table.Rows)
... funciona bien sin errores.
También si lo hago ...
var numbers = new int[] { 1, 2, 3 };
foreach (var number in numbers)
... var evalúa a struct System.Int32
. Entonces, el problema no es que var
no funcione en una cláusula foreach
.
Por lo tanto, hay algo extraño en DataRowCollection
donde los elementos no evalúan automáticamente a DataRow
. Pero no puedo descifrar de qué se trata. ¿Alguien tiene una explicación?
actualización
realmente estaba roto, que responda a marcar (Codeka y Oliver) ... Al final, decidí marcar Codeka de porque realmente responde a mi pregunta, pero Oliver responde a la pregunta que debería haber estado preguntando :)
gran punto! +1 –
Me encanta esta respuesta. +1 – wonea