-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'(按照身体)?它们完全不同 - 并且都被广泛记录。 –