最近我花了很多时间确保我的物品都有名字,可以轻松识别它们的含义。我还发现你可以像这样一次性使用对象:
_ProfileList = (New RegistryManager).GetAllProfiles()
与创建命名对象相反。
当你想要的只是一次访问某个对象时,有没有理由不这样做?如果有人知道专业和缺点会很棒。
PS:这是VB.NET代码,但如果提供示例
,它或C#都可以答案 0 :(得分:1)
对象没有名称 - 变量有。
创建一个对象并仅在另一个表达式中使用它是绝对正常的 - 尽管我认为像RegistryManager
这样的东西听起来应该是传入的依赖,并且不是像这样在代码中创建的东西。它会使测试更难。
更好的例子是StringBuilder
:
string text = new StringBuilder().Append("Foo")
.Append(name)
.DoOtherAppending()
.ToString();
答案 1 :(得分:1)
显式 - 它只是没有存储在变量中(实际上,对象 从不具有“名称” - 仅局部变量/字段有名称)。如果您不需要多次使用该对象,并且它不会使核心更复杂,那么这并没有真正的缺点。请注意,如果对象为IDisposable
或类似,则需要本地,即
using(var manager = new RegistryManager()) {
_ProfileList = manager.GetAllProfiles();
}
但除此之外,它并不关心。实际上,如果您执行分配给本地并立即使用它,我希望任何“发布”版本都能完全删除变量无论如何,这意味着一次编译(在发布中)
var manager = new RegistryManager();
_ProfileList = manager .GetAllProfiles();
和
_ProfileList = (new RegistryManager()).GetAllProfiles();
是相同的(我的期望)。