[英]c# object instantiation
有什么区别:
Object o = new Object();
o.foo();
和
new Object().foo();
(假设我之后不需要参考)?
是否有任何理由使用一个而不是另一个(例如内存使用)?
执行方面没有区别。
调试方面可能有所不同:
foo()
之前,它可以很方便地中断 NullReferenceException
,如果同一语句中有多个解除引用操作,则可能会很棘手)。 我绝对不是说你应该总是将所有内容分开 - 只是它可以用于调试目的。
如果之后不需要实例,则没有区别。
如果你不需要o
后语,那么没有区别。
(JIT)编译器可能会将它们视为相同。
所以这是一个品味问题。 在这种情况下,我略微偏爱第一个,但有时第二个样本的流畅表示法更具可读性。
没有不同。
要探测它,你可以编译两个代码(发布模式),用ildasm检查它们,你会看到结果字节码是相同的。
编辑:实际上,我有时发现在声明变量时更容易调试。 更容易检查,因此更容易调试。
编辑:删除了错误的代码
不同之处在于,在第一种情况下,您可以看到在调试器中创建的对象。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.