c#对象实例化

use*_*111 3 c# object

有什么区别:

Object o = new Object();
o.foo();
Run Code Online (Sandbox Code Playgroud)

new Object().foo();
Run Code Online (Sandbox Code Playgroud)

(假设我之后不需要参考)?

是否有任何理由使用一个而不是另一个(例如内存使用)?

Jon*_*eet 8

执行方面没有区别.

可能在调试方面的差异:

  • 在创建对象之后但在foo()调用之前,它可以很方便地中断
  • 之后能够检查变量的值是很方便的
  • 如果抛出异常,将调用分成多行可以使源更清晰.(我不认为这将是在这种特殊情况下的一个问题,但对于NullReferenceExceptionS IN特别是,如果有在同一语句中多次解引用的操作也可能会非常棘手).

我绝对不是说你应该总是将所有内容分开 - 只是它可以用于调试目的.


tre*_*ndl 6

如果之后不需要实例,则没有区别.