object[] objArray = new object[]{"blah", 4, "whatever"};
foreach(var value in objArray) vs. foreach(object value in objArray)
我很好奇这些之间的区别是什么,除了var之外必须保留它的类型。这个比那个好吗?谢谢。
答案 0 :(得分:4)
从纯粹的功能角度来看,var
只是此处object
的快捷方式,因为objArray
的元素属于声明类型object
。
使用object
表示无论谁在阅读代码时,都不知道数组中的项目是否比object
更具体。使用var
并不意味着这一点。在您发布的最小情况下,它对您使用的程序的清晰度没有任何影响。
另一方面,如果从上下文中不能立即清楚您正在使用哪种类型的对象,那么显式声明该类型可能是有利的。另一方面,如果你正在迭代的集合的元素类型是冗长和突兀的,那么使用var
可能是有利的,这样读者的眼睛就会被吸引到逻辑中。代码而不是一堆通用参数。
答案 1 :(得分:1)
var
和任何其他类型之间的唯一区别是让编译器确定类型。
答案 2 :(得分:1)
这两者之间没有区别,var
在这种情况下会object
。
答案 3 :(得分:1)
在你的例子中没有。但是,
宣告objects
时,您获得:
Boxing and Unboxing
然而。使用var时,它的编译方式与指定确切类型名称完全相同。
因此var tempval = 5;
与int tempval = 5;