object[] objArray = new object[]{"blah", 4, "whatever"};
foreach(var value in objArray) vs. foreach(object value in objArray)
我很好奇,所不同的是那些什麼之間,比其他變種必須保持分配後,它的類型。比其他?謝謝更好。迭代對象數組;的foreach(VAR ...主場迎戰的foreach(對象
object[] objArray = new object[]{"blah", 4, "whatever"};
foreach(var value in objArray) vs. foreach(object value in objArray)
我很好奇,所不同的是那些什麼之間,比其他變種必須保持分配後,它的類型。比其他?謝謝更好。迭代對象數組;的foreach(VAR ...主場迎戰的foreach(對象
從純功能的角度,var
是絕對的此處爲object
的快捷鍵,因爲objArray
的元素是object
。
使用object
是一個標誌,指示閱讀代碼的人不知道數組中的項目是否比object
更具體。使用var
並不意味着這一點。在你發佈的最小的情況下,它確實對你使用的程序的清晰度沒有任何影響。
另一方面,如果從上下文中沒有立即清楚您正在處理的對象類型,那麼顯式聲明類型可能會比較有利。另一方面,如果您正在迭代的集合的元素的類型是冗長且突兀的,那麼使用var
可能是有利的,以便讀者的眼睛將被吸引到代碼的邏輯而不是通用參數混亂。
var
和任何其他類型的唯一區別是,你讓編譯器確定類型。
在你的例子沒有。但是,
在聲明objects
你: Boxing and Unboxing
不過。使用var時,它的編譯方式與您指定確切的類型名稱完全相同。
所以var tempval = 5;
相同int tempval = 5;
非常清楚。我現在明白了。謝謝。 – user943870