1. var表示「變數的型別是在編譯時決定的」, var讓你在初始化變數時少輸入一些字,編譯器會根據右值來推斷出變數的型別, var只能用於區域性變數的定義,你不能把類的屬性定義成 var,也不能把方法的返回值型別或者是引數型別定義成var
2. dynamic表示「變數的型別是在執行時決定的」,動態語言執行時(dynamic language runtime dlr)是.net framework 4 beta 1中的一組新的api,它提供了對c#中dynamic型別的支援, dynamic告訴編譯器,根本就別理究竟是啥型別,執行時再推斷不遲,dynamic型別並沒有跳過型別校驗,只是延遲到了執行時。如果在執行時,檢測到型別不相容,照樣會丟擲異常。變數,屬性,方法返回值型別及引數型別都可定義為dynamic。
你可能在以下情況下使用dynamic:
1.com物件
2.動態語言(如ironpython,ironruby等)物件
3.反射物件
4.c# 4.0中動態建立的物件
因此,dynamic與var具有截然不同的含義。
C 4 0中dynamic與var的區別
var表示 變數的型別是在編譯時決定的 但是dynamic表示 變數的型別是在執行時決定的 因此,dynamic與var具有截然不同的含義。var讓你在初始化變數時少輸入一些字,編譯器會根據右值來推斷出變數的型別。dynamic更厲害,它告訴編譯器,根本就別理究竟是啥型別,執行時再推斷不遲。var只...
C 4 0 中的dynamic與var的區別
注意 var與dynamic這兩個關鍵字,只是看起來很相 似,僅此而已!var表示 變數的型別是在編譯時決定的 但是dynamic表 示 變數的型別是在執行時決定的 因此,dynamic與var具有截然不同的含義。var讓 你在初始化變數時少輸入一些字,編譯器會根據右值來推斷出變數的型別。dynam...
C 4 0跨程式集使用 dynamic
今天寫 時偷懶用了dynamic,結果遇到問題,執行時始終無法獲取dynamic物件的屬性。原問題簡化後如下 程式集a包含sampleclass類,有乙個靜態方法,接收乙個dynamic型別引數並將其value屬性輸出。public class sampleclass 程式集b引用程式集a並呼叫ou...