这有意义吗?
有一个简单的课程
class Test
{
public Test()
{
// Do whatever
}
}
然后实例化
using(new Test())
{
// Nothing in here
}
using语句只是为了确保处理Test。 如果我打电话
什么时候会被处理掉new Test()
答案 0 :(得分:11)
Test
不是IDisposable
,因此甚至不会编译。但如果 是一次性的,那么using
会这样做,而new
本身将不会。这是不寻常的用法,但我见过类似的。很少。
根据您的评论(主要问题),我怀疑您混淆了垃圾收集和处置。没有办法强制收集某些内容,而不是GC
(你应该不这样做)。除非你有真的有理由想要收集它,否则就让它成为 - 很可能是“第0代”,并且无论如何都会廉价收集。
此外,“做任何事情”建议在构造函数中执行但不关心创建的对象;静态方法更可取:
public class Test { /* could be static */
public static void DoSomething() { ... }
}
...
Test.DoSomething();
答案 1 :(得分:2)
通过不将实例分配给变量,只要它超出范围,它就有资格获得GC。
或者,你还有什么想要用这个来完成的吗?
答案 2 :(得分:0)