对于一些资源,尤其是那些比较重要的系统级资源(如文件系统对象、网络系统对象、系统图形界面对象),使用后必需及时显式的释放,因为系统的垃圾回收器(GC)并不能保证在合适的时候被触发。
使用方法
1.用完后显式调用Dispose()方法
2.使用using结构,在对象超出作用域时using结构会自动调用Dispose()。
using
(Graphics g
=
this
.CreateGraphics())
...
{
g.DrawLine(Pens.Black, new Point(0,0), new Point(3,5));
}
等价于:
Graphics g

try
...
{
g.DrawLine(Pens.Black, new Point(0,0), new Point(3,5));
}

finally
...
{
if (g != null)
((IDisposable)g).Dispose();
}

是不是很多人不用c#中的using操作符?甚至不知道?
其实这个操作符在小处非常有用。
按照MSDN的解释
http://msdn2.microsoft.com/zh-CN/library/yh598w02(VS.80).aspx
using 关键字还用来创建 using 语句,此类语句定义将在何时释放对象
可以举个例子
class Demo:IDisposable
{
public void Dispose()
{
Console.WriteLine("Dispose");
}
public void DemoMethod()
{
Console.WriteLine("hi");
}
};
using (Demo a = new Demo())
{
a.DemoMethod();
}
可以看到Dispose()方法也会同时执行,这样带来的方便是不言而喻的
具体事例,大家可以参考PetShop 4.0的SQLHelper.cs
本文详细介绍了C#中的using语句用法及其重要性,通过实例展示了如何使用using语句来确保资源的正确释放,这对于理解C#中资源管理机制至关重要。

9204

被折叠的 条评论
为什么被折叠?



