-3
dynamic a = 4;
動態是僅在編譯時纔有的類型。然後a是一個動態編譯時間,但在執行時間不是。發生了什麼事,當我說動態類型的含義是什麼
a = "pp";
類型的在excecution(很奇怪)一變化,或創建一個新的變量與字符串類型。
dynamic a = 4;
動態是僅在編譯時纔有的類型。然後a是一個動態編譯時間,但在執行時間不是。發生了什麼事,當我說動態類型的含義是什麼
a = "pp";
類型的在excecution(很奇怪)一變化,或創建一個新的變量與字符串類型。
動態a = 4;
我說什麼時發生了什麼
a =「pp」;
將字符串值"pp"
分配給變量a
。
的類型excecution
a
變化(很奇怪)
真實的,但它並不奇怪(技術上什麼a
引用在運行時變化型) - 它的工作原理相同
object a = 4;
Console.WriteLine(a.GetType().Name); // Int32
a = "pp";
Console.WriteLine(a.GetType().Name); // string
的變量:如果您使用 '對象' 的方式可以容納任何類型,什麼a
實際上參考可以在運行時改變。
dynamic
非常類似於object
,因爲它可以引用任何類型的對象。不同的是操作dynamic
變量在編譯時不檢查;它們在運行時被延遲和綁定。因此,這是完全合法的:
dynamic a = 4;
a = a + 1;
a = "pp";
Console.WriteLine(a.Substring(1,1));
你不能做到這一點與object
沒有因爲object
鑄造沒有定義+
運營商或Substring
方法。
http://msdn.microsoft.com/en-us/library/dd264741.aspx – 2014-11-06 16:45:53