日期:2014-05-17  浏览次数:20671 次

请教一个关于new关键字的问题
1  XmlDocument document = new XmlDocument ();
 2  document.Load(@"C:\book.xml");
 3  XmlElement element = document.DocumentElement; 



请问第三行:
 
XmlElement element = document.DocumentElement;
 
如果写成:
 XmlElement element = new XmlElement();
 element = document.DocumentElement;
 
这两种写法有什么区别么?
 
new关键字在什么情况下可以省略呢?
 
比如: String str = 99; 也是省略了new?

------解决方案--------------------
反编译发现,new的一行代码保留了,所以,只是增加了GC的工作 其他没有作用。
你要创建新实例的时候才会用new,只是赋值操作时不用new来实例化。
比如 User u1=new("张三"); 你还需要一个李四的时候 需要再new一个。
但是 你另外一个变量还是需要张三,你可以直接拿来用,如下
User u2=u1;  只是引用了原来对象的内存地址。
在方法中有返回值的时候,一般都是在方法中创建完了对象,直接赋值给变量就可以,也是不许要再new一次的