Posted on 2013-04-16 13:59
夢(mèng)想不只是做夢(mèng)想一想 閱讀(153)
評(píng)論(0) 編輯 收藏
var表示“變量的類型是在編譯時(shí)決定的”,但是dynamic表示“變量的類型是在運(yùn)行時(shí)決定的”。因此,dynamic與var具有截然不同的含義。
var讓你在初始化變量時(shí)少輸入一些字,編譯器會(huì)根據(jù)右值來(lái)推斷出變量的類型。dynamic更厲害,它告訴編譯器,根本就別理究竟是啥類型,運(yùn)行時(shí)再推斷不遲。
var只能用于局部變量的定義,你不能把類的屬性定義成 var,也不能把方法的返回值類型或者是參數(shù)類型定義成var。dynamic就沒有這些局限了。
dynamic類型并沒有跳過類型校驗(yàn),只是延遲到了運(yùn)行時(shí)。如果在運(yùn)行時(shí),檢測(cè)到類型不兼容,照樣會(huì)拋出異常。
你可能在以下情況下使用dynamic:
1.COM對(duì)象
2.動(dòng)態(tài)語(yǔ)言(如IronPython,IronRuby等)對(duì)象
3.反射對(duì)象
4.C# 4.0中動(dòng)態(tài)創(chuàng)建的對(duì)象