遍历对象数组;foreach(var.. vs. foreach(object.


object[] objArray = new object[]{"blah", 4, "whatever"};
foreach(var value in objArray) vs. foreach(object value in objArray)

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

从纯函数的角度来看,var 只是object这里的快捷方式,因为objArray 的元素声明为 object 类型。

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

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

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

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

在你的例子中没有。但

声明objects时,您会得到:装箱和拆箱

然而。使用 var 时,它的编译方式与指定确切的类型名称完全相同。

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

最新更新