gpt4 book ai didi

c# - 在 C# 中,var 关键字何时不同于键入它?

转载 作者:行者123 更新时间:2023-11-30 18:54:31 25 4
gpt4 key购买 nike

C# 3.0 引入了 var 关键字。编译时,编译器会为您插入正确的类型。这意味着它甚至可以在 2.0 运行时上运行。到目前为止,一切都很好。但是前几天我发现了一个例子,var 关键字将被替换为 object,因此不够具体。假设你有类似的东西:

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 用法的问题,有一个关于它的线程 here .

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

编辑:现在附上正确的代码。

最佳答案

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

关于c# - 在 C# 中,var 关键字何时不同于键入它?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/391462/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com