黑马程序员技术交流社区

标题: int a = 1; object a = 1; var a = 1; dynamic a = 1有啥区别 [打印本页]

作者: DotNet菜鸟    时间: 2011-11-2 13:01
标题: int a = 1; object a = 1; var a = 1; dynamic a = 1有啥区别
int a = 1; object a = 1; var a = 1; dynamic a = 1;这四条语句都是啥?有啥区别?
作者: 章坚    时间: 2011-11-2 13:44
类型不同   INT   声明为一个整数类型的变量
object  所有类型的父类  var   可变型类型  看你怎么用  你使用中为什么类型 就是什么类型
dynamic 类型与 object 类型的行为是一样的。 但是,不会用编译器对包含 dynamic 类型表达式的操作进行解析或类型检查,编译器将有关该操作信息打包在一起,并且该信息以后用于计算运行时操作。 在此过程中,类型 dynamic 的变量会编译到类型 object 的变量中。 因此,类型 dynamic 只在编译时存在,在运行时则不存在。dynamic 在运行时错误了,也不会报错,它只在编译中存在
作者: 陈涛    时间: 2011-11-2 13:47
int a = 1; object a = 1; var a = 1; dynamic a = 1;  不是都标明了吗?  类型不同阿.
作者: DotNet菜鸟    时间: 2011-11-2 14:44
int ,object,var 都会在编译是确定其数据类型,而dynamic则会将数据类型确定推迟到运行时
使用var关键字申明变量,编译器会根据分配的实例类型确定此变量的类型,即类型推断,跟dynamic比,var并无任何运行时的动态特性,仅仅是编译器在编译时反向推断其类型,同直接用其编译时类型声明变量功能上是一样的。
用dynamic相当于你告诉编译器此对象的类型只在运行时确定,编译器不会试图干预。最终,你可以写更少的代码。但我要强调一下,相对于使用原有的object关键字,这样做不会增加任何危险。同样,也不会减少任何危险,所以当操作任何对象需要类型检查技术时(如反射),则使用dynamic对象会更好。
作者: 朱勋    时间: 2011-11-3 09:52
类型不同 ,表示的意思不同
作者: 沙铁健    时间: 2011-11-3 10:21
类型不同呗... 作用也不同呗   例如 int 数值型 用来计算的  ....
作者: liucaifu    时间: 2011-11-3 10:21
int a = 1; object a = 1; var a = 1; dynamic a = 1;类型区别,类型不一样,所分配的空间也不一样,类型根据一些情况来进行选择。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2