2
object[] objArray = new object[]{"blah", 4, "whatever"};

foreach(var value in objArray) vs. foreach(object value in objArray)

我很好奇它们之间的区别是什么,除了 var 在分配后必须保持其类型。这个比那个好吗?谢谢。

4

4 回答 4

4

从纯粹的功能角度来看,var这只是object这里的一个捷径,因为objArray's 元素是声明类型的object

对于正在阅读代码的人来说,使用object是一个信号,表明数组中的项目不知道是比 . 更具体的任何类型object。的使用var并不意味着这一点。在您发布的最小情况下,它对您使用的程序的清晰度没有任何影响。

另一方面,如果从上下文中不能立即清楚您正在使用什么类型的对象,那么显式声明该类型可能是有利的。另一方面,如果您正在迭代的集合元素的类型是冗长且突兀的,那么使用 可能是有利的var,这样读者的眼睛就会被代码的逻辑所吸引,而不是一团糟泛型参数。

于 2012-06-19T00:17:25.250 回答
1

与任何其他类型的唯一区别var是您让编译器确定类型。

于 2012-06-19T00:08:56.933 回答
1

在这种情况下,这var两者之间没有区别 。object

于 2012-06-19T00:09:10.047 回答
1

在你的例子中没有。但,

声明时objects你得到: 装箱和拆箱

然而。使用 var 时,它的编译方式与您指定了确切的类型名称一样。

所以var tempval = 5;是一样的int tempval = 5;

于 2012-06-19T00:22:49.963 回答