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
}
Run Code Online (Sandbox Code Playgroud)
当我尝试使用行时,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
}
Run Code Online (Sandbox Code Playgroud)
这不是一个关于VAR的使用问题,对于一个线程在这里.
我正在使用Visual Studio 2008 SP1顺便说一句.
编辑:现在附加了正确的代码.
| 归档时间: |
|
| 查看次数: |
918 次 |
| 最近记录: |