-5
var foo1 = new SomeClass();
SomeClass foo2 = new SomeClass();
這兩行代碼是否轉換爲相同的IL,並且dynamic
與它們有何不同?我知道dynamic
使用某種叫做後期綁定的技術,但它是如何工作的?var與常規對象聲明C#
var foo1 = new SomeClass();
SomeClass foo2 = new SomeClass();
這兩行代碼是否轉換爲相同的IL,並且dynamic
與它們有何不同?我知道dynamic
使用某種叫做後期綁定的技術,但它是如何工作的?var與常規對象聲明C#
這兩行代碼是否轉換爲相同的IL?
是
以及如何動態從他們身上有什麼不同?
直到您顯示成員訪問權限時無意義;例如:
dynamic foo3 = new SomeClass();
foo3.SomeMethod();
這裏,SomeMethod
完全在運行時經由任一動態調度層或上反射的頂部位於一個高速緩存元編程層分辨(取決於哪些功能SomeClass
有)。在常規(非動態)IL中,它只是一個單一的callvirt
操作碼。
這看起來像一個工作...... Skeet。 – christopher
它們是一樣的,在IL中沒有區別。問題被多次詢問和回答。 –
你的問題實際上是關於'var'(按照標題)還是'dynamic'(按照身體)?它們完全不同 - 並且都被廣泛記錄。 –