代码之家  ›  专栏  ›  技术社区  ›  Jla

使用“Using”语句处理

  •  9
  • Jla  · 技术社区  · 15 年前

    这有道理吗?

    上简单的课

       class Test
       {
         public Test()
         {
            // Do whatever
         }
       }
    

    然后实例化它

    using(new Test())
    {
      // Nothing in here
    }
    

    using语句只是为了确保测试被释放。 如果我打电话什么时候处理

    new Test()
    
    3 回复  |  直到 15 年前
        1
  •  11
  •   Marc Gravell    15 年前

    Test 不是吗 IDisposable ,这样就不会编译了。但如果它 一次性的,是的 using 会的,而且 new . 它是一个 用法,但我见过类似的。很少。

    犯罪嫌疑人 你把垃圾收集和处理搞混了。没有办法强行把东西收起来,除非 GC 是的)。除非你有 真正地 有很好的理由想把它收集起来,就随它去吧——很可能它是“第0代”,无论如何都会被廉价收集。

    public class Test { /* could be static */
         public static void DoSomething() { ... }
    }
    ...
    Test.DoSomething();
    
        2
  •  2
  •   Jordan S. Jones    15 年前

    通过不将实例分配给变量,一旦实例超出范围,它就可以进行GC。

    推荐文章