object o=null;
相当于:
object o;
o=null;
就是在定义的时候同时初始化。
一个变量定义后,初始值为默认值(比如很多类型的null),在一些语言里,定义后会自动初始化,定义后就能直接使用。
但是,在.NET中,为了提升代码质量,避免一些不必要的麻烦,要求任何变量都必须是先初始化后使用,否则,编译报错。
object o=null;
就是一步到位的操作,将代码简化(呵呵,少写了一行代码啊,虽然在程序执行上并没什么区别)。
Object o; 这种写法只是分配一个引用,从内存上说在栈上分配了一块名叫o的内存。
Object o = null; 这么写则是给引用指向了一个空对象,不仅在栈上分配置了一个名叫o的内存,还在堆上分配了一块内存,里面存放的是null的值,并且o指向堆上的这块内存。
Object o;等待初始化或自动初始,在内存的栈里有一个叫o的变量,但没有指向堆里的哪些引用;
Object o = null;手动初始化,在内存的栈里有一个叫o的变量,但没有指向堆里的哪些引用;
100和100块钱有什么区别?
在 地 地 地 地 地 地 地