using关键字的另类用法
2007-05-28 13:31
399 查看
在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);
}
}
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);
}
}
相关文章推荐
- using关键字的另类用法
- C#中using关键字的作用及其用法
- C#关键字using的几种用法
- .net 中using 关键字的用法
- C#中using关键字的作用及其用法
- C#中using关键字的作用及其用法
- c# using 关键字的用法
- This、Using、关键字用法
- using关键字的三个常用用法
- C语言在8051单片机上的扩展(interrupt、using关键字的用法)
- C#中using关键字用法
- 【转】C#中using关键字的作用及用法
- using关键字的用法以及作用
- using这个关键字在C#中共用三个用法
- C#中using关键字的作用及其用法
- C#中using关键字的作用及其用法(转)
- Using关键字的用法
- Using关键字的用法
- C#关键字using的几种用法
- 关于如何利用Keil C实现51单片机中断功能(interrupt、using关键字的用法)