A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

int a = 1; object a = 1; var a = 1; dynamic a = 1;这四条语句都是啥?有啥区别?

评分

参与人数 1技术分 +1 收起 理由
官方工作人员 + 1 赞一个!

查看全部评分

6 个回复

正序浏览
liucaifu 黑马帝 2011-11-3 10:21:19
7#
int a = 1; object a = 1; var a = 1; dynamic a = 1;类型区别,类型不一样,所分配的空间也不一样,类型根据一些情况来进行选择。
回复 使用道具 举报
类型不同呗... 作用也不同呗   例如 int 数值型 用来计算的  ....
回复 使用道具 举报
类型不同 ,表示的意思不同
回复 使用道具 举报
int ,object,var 都会在编译是确定其数据类型,而dynamic则会将数据类型确定推迟到运行时
使用var关键字申明变量,编译器会根据分配的实例类型确定此变量的类型,即类型推断,跟dynamic比,var并无任何运行时的动态特性,仅仅是编译器在编译时反向推断其类型,同直接用其编译时类型声明变量功能上是一样的。
用dynamic相当于你告诉编译器此对象的类型只在运行时确定,编译器不会试图干预。最终,你可以写更少的代码。但我要强调一下,相对于使用原有的object关键字,这样做不会增加任何危险。同样,也不会减少任何危险,所以当操作任何对象需要类型检查技术时(如反射),则使用dynamic对象会更好。
回复 使用道具 举报
int a = 1; object a = 1; var a = 1; dynamic a = 1;  不是都标明了吗?  类型不同阿.
回复 使用道具 举报
类型不同   INT   声明为一个整数类型的变量
object  所有类型的父类  var   可变型类型  看你怎么用  你使用中为什么类型 就是什么类型
dynamic 类型与 object 类型的行为是一样的。 但是,不会用编译器对包含 dynamic 类型表达式的操作进行解析或类型检查,编译器将有关该操作信息打包在一起,并且该信息以后用于计算运行时操作。 在此过程中,类型 dynamic 的变量会编译到类型 object 的变量中。 因此,类型 dynamic 只在编译时存在,在运行时则不存在。dynamic 在运行时错误了,也不会报错,它只在编译中存在
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马