现在代码中会有很多用var关键字来声明变量的,如 var one=new Class();这与Class one=new Class(); 有什么区别?
原来这两种方式结果是一样的,都是得到了一个Class类型的对象one。但是它们的过程是有区别的。
在使用已知类型声明变量(Class one;one=new Class();)时,编译器就知道了该变量的类型,在编译时就直接
在内存中给该变量分配了对应大小的堆栈存储空间。在用var声明变量(var one;one=new Class();)时编译器是不知道该
变量类型的,编译时就会报错。
用var关键字声明后就是告诉编译器在编译时根据等号右边初始化语句来推断确定变量的类型,所以用var关键字
声明变量时一定要同时进行初始化(var one=new Class();)。感觉使用var关键字可以推迟变量的类型确定,在通过编
译器编译后来给该变量确定类型。貌似跟匿名类天生一对啊(var one=new{......})。