在The C# Programming language比爾·瓦格納說:動態綁定VS類型推斷
很多人混淆了類型推斷動態bindig。類型 推斷是靜態綁定的。編譯器在編譯時確定類型 。例如:
var i = 5; //i is an int (Compiler performs type inference) Console.WriteLine(i); //Static binding to Console.WriteLine(int)
編譯器推斷出我是一個整數。所有綁定變量 我使用靜態綁定。
現在,鑑於此信息,我自己編造的動態之情況:
dynamic i = 5; //Compiler punts
Console.WriteLine(i);//This is now dynamically bound
我們知道類型推斷靜態綁定。這意味着動態變量無法使用類型推斷來確定類型。如何在不使用類型推斷的情況下解決動態類型?
更新
要嘗試,並在運行時,我們必須設法弄清楚我是什麼類型的正確澄清......?因爲我分配了文字5
,運行時可以推斷i
是int
。不是那種類型推斷而不是動態綁定?
動態的基礎類型(這是一種語言結構,在元數據中除了屬性外沒有表示)是'System.Object'。這是C#編譯器魔術,它允許您動態調用方法並訪問其上的字段(在本例中爲盒裝整型),而無需自己進行反射。 – 2013-02-13 17:56:07