实例化而不分配给变量

Instantiating without assigning to a variable

我正在继承别人在工作中编写的代码,发现有很多 "new" 实例化而没有实际分配给变量:

new MyCoolClass().MyCoolMethod();

我只是想知道是否有人对此有任何经验,这是否是反模式。

取决于 MyCoolMethod() 的作用。如果它 returns 无效,那么将它分配给变量就没有意义了。我不知道其他人,但我经常使用它。这是否是一个好的做法还有待讨论:)

编辑:我同意@Patrick Hofman 的观点。我的回答实际上是关闭的。我以为 OP 在问为什么我们没有变量来存储 MyCoolMethod() returns。请参阅@Patrick 的回答:)

好吧,如果您经常这样调用它,该方法可能应该是 static 方法,因为该实例似乎未被使用或至少不相关。如果你创建一个实例,你应该使用它。

我会尝试把这种代码写出来。为了性能和理解。

如果构造函数或方法使用创建的实例,则没有任何问题。例如,构造函数或方法可以为字段赋值或调用其他实例方法或将实例传递给使用它的另一个方法。如果该实例确实从未使用过,那么可以像其他答案所建议的那样将其重构为静态方法。

关于赋值,如果调用完这一次方法后不需要再次使用实例,为什么要将实例赋值给变量?我能想到的一个原因是,如果你给变量一个有用的名字,它可能会提高可读性(或可能不会)。