我应该丢弃所有一次性物品吗?

Foo*_*Foo 6 .net c# idisposable

.NET中的许多对象(SQLCommand例如)实现IDisposable.作为一般规则,如果我创建一个IDisposable对象的实例,我应该总是处置它吗?

Oma*_*aha 17

是的,除非您在完成任务或负责呼叫时从需要它的呼叫者处接收它Dispose().重要的是有人打电话Dispose(),如果你正在通过一个IDisposable实例,那么需要有一个关于你是否为它获得所有权(因此需要处理它)或者你是否"借用它"的理解("合同") "并且来电者将在您返回时使用/处理它.这些是良好的 API在其文档中具有的类型.

如果要实例化对象,请自行轻松自动处理using.

  • @Jon怎么样?除非另有规定,否则预计创造一次性物体的人将负责处置它.如果有人为我传递一次性资源,则认为他们负责处理它,如果我早期处理它,那么*我就是那个设计不佳的人. (6认同)