当我进入这个foreach
声明...为什么var在“foreach(var row in table.Rows)”中评估为System.Object?
foreach (var row in table.Rows)
... var的提示说class System.Object
我很困惑,为什么它不是class System.Data.DataRow
。
(如果你想知道,是的,我有using System.Data
我的代码文件的顶部)。
如果我显式声明的类型,如...
foreach (DataRow row in table.Rows)
...它工作正常,没有错误。
另外,如果我做...
var numbers = new int[] { 1, 2, 3 };
foreach (var number in numbers)
... VAR的计算结果为struct System.Int32
。所以,问题不是var
在foreach
子句中不起作用。
所以,有一些奇怪DataRowCollection
在项目不自动计算为DataRow
。但我无法弄清楚它是什么。有没有人有解释?
更新
我真的很撕裂,其回答标记(Codeka和Oliver)......最终,我决定以纪念Codeka的,因为它真实地回答我的问题,但奥利弗回答问题我应该一直在问:)
大点! +1 – 2010-05-07 10:26:56
喜欢这个答案。 +1 – wonea 2011-10-25 13:14:20