这有道理吗
有一个简单的课
class Test { public Test() { // Do whatever } }
然后实例化它
using(new Test()) { // Nothing in here }
使用声明只是为了确保测试被处理.
如果我打电话,什么时候会被处理
new Test()
解决方法
测试不是IDisposable,所以甚至不会编译.但是,如果是一次性使用,是使用会做,而新的本身不会.这是一个不寻常的用法,但我看到类似的.很少.
根据您的评论(主要问题),我怀疑垃圾收集和处理是混乱的.没有办法强制收集某些东西,而不是GC(你不应该做).除非你有一个非常好的理由要收集,只要让它成为 – 有可能是“第0代”,无论如何也将被廉价收集.
此外,“做任何事情”建议在构造函数中执行某些操作,但不关心创建的对象;一个静态方法是最好的:
public class Test { /* could be static */ public static void DoSomething() { ... } } ... Test.DoSomething();