对于我只使用一次实例化对象的快速任务,我知道我可以执行以下操作:
int FooBarResult = (new Foo()).Bar();
我说这对于非一次性物品是完全可以接受的,并且比替代物更具可读性:
Foo MyOnceUsedFoo = new Foo(); int FooBarResult = MyOnceUsedFoo.Bar();
你用哪个,为什么?
你会在生产应用程序中使用这种类型的匿名实例化吗?
偏好:带括号"(new Foo()).Bar();" 或没有"new Foo().Bar();"?
(编辑从Random类抽象问题)
关于随机数的附注:事实上,不,你的具体例子(new Random().Next(0,100)
)是完全不可接受的.生成的随机数远非均匀.
除此之外,一般来说,两者之间没有太大差异.在任何一种情况下,编译器很可能会生成完全相同的代码.您应该使用最易读的案例(长语句可能会损害可读性;更多代码也会这样做,因此您必须在特定情况下进行权衡).
顺便说一下,如果你选择单行情况,省略不必要的parens(new MyObject().Method()
会这样做).
您可能想要考虑在调试器中使用代码的含义.第二种情况将允许您检查您创建的对象,而第一种情况则不会.当您尝试调试代码时,可以随时返回到第二种情况.
我已经做到了两种方式,并没有真正的偏好.我更喜欢看起来更具可读性的东西,这高度依赖于被调用的类和方法的复杂性.
BTW - 你可能想选择一个不同的例子.我担心在讨论生成随机数的最佳方法时,你的观点可能会丢失.