代码之家  ›  专栏  ›  技术社区  ›  Chris Mullins

对类型化数据集表适配器使用“Using”语句

  •  3
  • Chris Mullins  · 技术社区  · 14 年前

    using (Data_ItemTableAdapter adapter = new Data_ItemTableAdapter())
    {
    
        DataItemTable = a.GetDataByDataItemID(DataItemID);
        // more code here
    }
    

    谢谢你的帮助!!

    4 回复  |  直到 14 年前
        1
  •  6
  •   Jerod Houghtelling    14 年前

    如果类实现 IDisposable 接口,那么将对象包装在 using 或打电话给 Dispose 方法。

    在本例中,我不认为数据适配器正在使用任何未管理的资源,因此dispose可能不会做任何实质性的事情。不过,包装起来会更安全,因为将来可能会。

        2
  •  4
  •   AllenG    14 年前

        3
  •  2
  •   kemiller2002    14 年前

    如果某个东西实现了dispose,这意味着它可能已经实现了一个自定义终结器。调用dispose应该(如果写得正确)禁止CG调用它。如果CG需要调用类的终结器,那么CG将不得不在从内存中删除对象方面做额外的工作。它会把它提升到CG的下一个层次,所以这个物体会在记忆中停留更长的时间。

    因此,即使您认为调用它并不重要,但无论如何,它可能是一个好主意,因为它很可能允许更有效的垃圾收集。事实上,如果有Dispose,它可能是有原因的,应该被使用。把它放在using语句中是处理这个问题最简单的方法。

    Finalizers and the GC in .NET

        4
  •  2
  •   Henk Holterman    14 年前

    一般来说,它肯定不会造成伤害,所以如果有疑问,并且如果它有Dispose(),请使用 using