object[] objArray = new object[]{"blah", 4, "whatever"};
foreach(var value in objArray) vs. foreach(object value in objArray)
我很好奇它们之间的区别是什么,除了 var 在分配后必须保持其类型。这个比那个好吗?谢谢。
从纯粹的功能角度来看,var
这只是object
这里的一个捷径,因为objArray
's 元素是声明类型的object
。
对于正在阅读代码的人来说,使用object
是一个信号,表明数组中的项目不知道是比 . 更具体的任何类型object
。的使用var
并不意味着这一点。在您发布的最小情况下,它对您使用的程序的清晰度没有任何影响。
另一方面,如果从上下文中不能立即清楚您正在使用什么类型的对象,那么显式声明该类型可能是有利的。另一方面,如果您正在迭代的集合元素的类型是冗长且突兀的,那么使用 可能是有利的var
,这样读者的眼睛就会被代码的逻辑所吸引,而不是一团糟泛型参数。
与任何其他类型的唯一区别var
是您让编译器确定类型。
在这种情况下,这var
两者之间没有区别 。object
在你的例子中没有。但,
声明时objects
你得到:
装箱和拆箱
然而。使用 var 时,它的编译方式与您指定了确切的类型名称一样。
所以var tempval = 5;
是一样的int tempval = 5;