当前位置:  开发笔记 > 编程语言 > 正文

匿名实例化语法 - 好还是坏?

如何解决《匿名实例化语法-好还是坏?》经验,为你挑选了2个好方法。

对于我只使用一次实例化对象的快速任务,我知道我可以执行以下操作:

int FooBarResult = (new Foo()).Bar();

我说这对于非一次性物品是完全可以接受的,并且比替代物更具可读性:

Foo MyOnceUsedFoo = new Foo();
int FooBarResult = MyOnceUsedFoo.Bar();

你用哪个,为什么?
你会在生产应用程序中使用这种类型的匿名实例化吗?
偏好:带括号"(new Foo()).Bar();" 或没有"new Foo().Bar();"?

(编辑从Random类抽象问题)



1> Mehrdad Afsh..:

关于随机数的附注:事实上,不,你的具体例子(new Random().Next(0,100))是完全不可接受的.生成的随机数远非均匀.


除此之外,一般来说,两者之间没有太大差异.在任何一种情况下,编译器很可能会生成完全相同的代码.您应该使用最易读的案例(长语句可能会损害可读性;更多代码也会这样做,因此您必须在特定情况下进行权衡).

顺便说一下,如果你选择单行情况,省略不必要的parens(new MyObject().Method()会这样做).



2> tvanfosson..:

您可能想要考虑在调试器中使用代码的含义.第二种情况将允许您检查您创建的对象,而第一种情况则不会.当您尝试调试代码时,可以随时返回到第二种情况.

我已经做到了两种方式,并没有真正的偏好.我更喜欢看起来更具可读性的东西,这高度依赖于被调用的类和方法的复杂性.

BTW - 你可能想选择一个不同的例子.我担心在讨论生成随机数的最佳方法时,你的观点可能会丢失.

推荐阅读
LEEstarmmmmm
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有