C#關鍵字-var、object、dynamic的差異

 

一、object

當指定字串給object型別的物件後,因為object是所有物件的根型別,

因此在做運算時該object型別必須明確轉型成int,否則在編譯前將會指出錯誤訊息,

改成如下

 

二、var

當使用var宣告變數時,即在編譯器就會經由初始化變數來推斷該型別,

因為於編譯時已決定好型別了,所以該變數在做運算時可不用再做轉型。

由上例,如果之後再指定字串給原本型別為int的變數,

則無法編譯。

 

二、dynamic

其實dynamic具有動態語言特性的靜態型別

宣告為dymanic型別的變數,由於只會在執行時辨識型別,

所以不需要在運算時做轉型動作,

也可以將其他型別指定給該變數。

 

參考資料:

Dynamic vs. Var vs. Object

了解 C# 4 的動態關鍵字