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