C#中的var和dynamic

摘自:《C#中的var和dynamic

靜態類型語言也被稱爲強類型語言。所謂強類型語言,通俗的講,就是在編譯過程中執行類型檢查的語言。我們舉個簡單的例子,比如我們知道一個方法的返回類型,但是如果返回類型過於複雜,那麼我推薦你使用var。但是,當你明確知道返回類型時,或者返回的只是簡單類型,那麼我推薦你直接使用該數據類型來聲明方法返回類型,就像平時我們經常用string、int、bool等修飾符聲明返回類型一樣。

var關鍵字在編譯時靜態的定義數據類型,而不是在運行時,即:一旦定義了數據類型,它將不會在運行時更改。

對於像int、double、string等簡單數據類型,我們最好使用特定的數據類型來聲明變量,以免讓事情變得複雜。但當你創建了一個很大的類,那麼爲了方便創建對象,你最好使用var關鍵字。還有一種約定俗成的習慣,當我們使用LINQ或Anonymous類型時,必須使用var關鍵字。

var實際上是編譯器拋給我們的語法糖,一旦被編譯,編譯器就會自動匹配var變量的實際類型,並用實際類型來替換該變量的聲明,等同於我們在編碼時使用了實際類型聲明。而dynamic被編譯後是一個Object類型,編譯器編譯時不會對dynamic進行類型檢查。

【注】語法糖(Syntactic sugar),也譯爲糖衣語法,是由英國計算機科學家彼得·約翰·蘭達(Peter J. Landin)發明的一個術語,指計算機語言中添加的某種語法,這種語法對語言的功能並沒有影響,但是更方便程序員使用。通常來說使用語法糖能夠增加程序的可讀性,從而減少程序代碼出錯的機會。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章