QFSoft

FireTiger

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::
    在C#里使用关键字,除了引用名字空间外还可以用于表明某段代码使用一个对象,在这段代码结束的时候,这个对象资源应该被释放掉。下面的代码给出了一个很好的范例:
Using (TestObject a = new TestObject())

 {

      // 使用对象

}

//调用释放对象的方法

    在处理对象的时候,上面的代码比使用try/catch/finally 要简便的多:

try

{

      TestObject a = new TestObject();

       // 使用对象

} catch (Exception e)

 {

        // 处理异常

} finally

{

       TestObject.Dispose();

}

    在这个语句中有一处警告,就是对象必须实现IDisposable这个接口。通过实现接口,你就为这种类型的实例分配它所需要的资源。

    IDisposable接口定义了一个方法--一个释放方法--就是释放那些已被分配出去而并没有在使用的资源。如果你不想代码自动去调用一个不存在的方法,这个方法就显得非常有用。如果你对一个对象使用关键字,而此时还没有实现IDisposable接口,编译器就会返回错误信息。下面这个程序中使用的这个类就是实现IDisposable的代码:

public class TestObject: IDisposable

{

        public TestObject()

       {

                   // 构建代码

       }

       public void Dispose()

       {

                //  清除管理的资源

                component.Dispose();

                 // 你同时需要清楚没有管理的资源

                 // 下面一行用于从队列中清除对象,以阻止其进一步的执行

                 GC.SuppressFinalize(this);

        } 

}

posted on 2007-09-28 13:13  MFKSoft  阅读(280)  评论(0编辑  收藏  举报
web counter
web counter