当前位置:  开发笔记 > 编程语言 > 正文

在C#中,var关键字与输入关键字不同吗?

如何解决《在C#中,var关键字与输入关键字不同吗?》经验,为你挑选了1个好方法。

C#3.0引入了var关键字.编译时,编译器会为您插入正确的类型.这意味着它甚至可以在2.0运行时运行.到现在为止还挺好.但是前几天我发现了一个案例,var关键字将被替换为对象,因此不够具体.说你有类似的东西:

var data = AdoMD.GetData(...); // GetData returns a DataTable

foreach (var row in data.Rows)
{
     string blah = (string)row[0]; // it fails since it's of type object
}

当我尝试使用行时,IntelliSense和编译器都告诉我它是对象类型.data.Rows是类型的System.Data.DataRowCollection.以下作品:

var data = AdoMD.GetData(...); // GetData returns a DataTable

foreach (DataRow row in data.Rows)
{
     string blah = (string)row[0]; // works since it now has the right type
}

这不是一个关于VAR的使用问题,对于一个线程在这里.

我正在使用Visual Studio 2008 SP1顺便说一句.

编辑:现在附加了正确的代码.



1> Anders Rune ..:

我想我看到了问题.DataRowCollection是非泛型的,因此编译器唯一知道的是包含Object类型的对象.如果它是一个通用的数据结构,这将是有效的.

推荐阅读
惬听风吟jyy_802
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有