【发布时间】:2016-08-17 10:07:10
【问题描述】:
我见过很多次开发人员使用内联一次性对象,例如here。内联是指:
var result = new DataTable().Compute("1 + 4 * 7", null);
我知道Dispose方法不会被调用,但是由于没有对对象的引用,垃圾收集器将如何处理它?使用这样的一次性物品安全吗?
我在示例中使用了DataTable,因为它是我找到的唯一具体示例,但我的问题一般适用于一次性物品。我个人不会那样使用它们,我只是想知道如果以这种方式使用它们,GC 是否会以不同的方式处理它们。
【问题讨论】:
-
虽然这不能回答你的一般问题,但它确实说明了你的例子stackoverflow.com/questions/913228/…
-
那个 sn-p 是一个聪明的程序员写的,他知道 DataTable 没有任何一次性的东西,也没有真正实现 Dispose()。许多.NET 程序员对此感到非常不舒服。所以不要那样做,当你使用 using 语句时它不会变得更丑陋。永远不会出错,你会感觉很好。
标签: c#