int ,object,var 都会在编译是确定其数据类型,而dynamic则会将数据类型确定推迟到运行时
使用var关键字申明变量,编译器会根据分配的实例类型确定此变量的类型,即类型推断,跟dynamic比,var并无任何运行时的动态特性,仅仅是编译器在编译时反向推断其类型,同直接用其编译时类型声明变量功能上是一样的。
用dynamic相当于你告诉编译器此对象的类型只在运行时确定,编译器不会试图干预。最终,你可以写更少的代码。但我要强调一下,相对于使用原有的object关键字,这样做不会增加任何危险。同样,也不会减少任何危险,所以当操作任何对象需要类型检查技术时(如反射),则使用dynamic对象会更好。 |