C#中的var和dynamic
摘自:《C#中的var和dynamic》
靜態(tài)類型語(yǔ)言也被稱為強(qiáng)類型語(yǔ)言。所謂強(qiáng)類型語(yǔ)言,通俗的講,就是在編譯過程中執(zhí)行類型檢查的語(yǔ)言。我們舉個(gè)簡(jiǎn)單的例子,比如我們知道一個(gè)方法的返回類型,但是如果返回類型過于復(fù)雜,那么我推薦你使用var。但是,當(dāng)你明確知道返回類型時(shí),或者返回的只是簡(jiǎn)單類型,那么我推薦你直接使用該數(shù)據(jù)類型來聲明方法返回類型,就像平時(shí)我們經(jīng)常用string、int、bool等修飾符聲明返回類型一樣。
var關(guān)鍵字在編譯時(shí)靜態(tài)的定義數(shù)據(jù)類型,而不是在運(yùn)行時(shí),即:一旦定義了數(shù)據(jù)類型,它將不會(huì)在運(yùn)行時(shí)更改。
對(duì)于像int、double、string等簡(jiǎn)單數(shù)據(jù)類型,我們最好使用特定的數(shù)據(jù)類型來聲明變量,以免讓事情變得復(fù)雜。但當(dāng)你創(chuàng)建了一個(gè)很大的類,那么為了方便創(chuàng)建對(duì)象,你最好使用var關(guān)鍵字。還有一種約定俗成的習(xí)慣,當(dāng)我們使用LINQ或Anonymous類型時(shí),必須使用var關(guān)鍵字。
var實(shí)際上是編譯器拋給我們的語(yǔ)法糖,一旦被編譯,編譯器就會(huì)自動(dòng)匹配var變量的實(shí)際類型,并用實(shí)際類型來替換該變量的聲明,等同于我們?cè)诰幋a時(shí)使用了實(shí)際類型聲明。而dynamic被編譯后是一個(gè)Object類型,編譯器編譯時(shí)不會(huì)對(duì)dynamic進(jìn)行類型檢查。
【注】語(yǔ)法糖(Syntactic sugar),也譯為糖衣語(yǔ)法,是由英國(guó)計(jì)算機(jī)科學(xué)家彼得·約翰·蘭達(dá)(Peter J. Landin)發(fā)明的一個(gè)術(shù)語(yǔ),指計(jì)算機(jī)語(yǔ)言中添加的某種語(yǔ)法,這種語(yǔ)法對(duì)語(yǔ)言的功能并沒有影響,但是更方便程序員使用。通常來說使用語(yǔ)法糖能夠增加程序的可讀性,從而減少程序代碼出錯(cuò)的機(jī)會(huì)。
總結(jié)
以上是生活随笔為你收集整理的C#中的var和dynamic的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 广州芳村印度人聚集地有哪些
- 下一篇: .Net/C# 实现: FlashFXP