using提供了C#中的实例生存时间的控制,在using语句内声明的实例将在using语句结束时调用Dispose方法.当然了,声明的实例必须继承自IDisposable接口.
using System;
class Instance: IDisposable
{
private string name;
public Instance(string name)
{
this.name = name;
}
public void UseLimitedResource()
{
Console.WriteLine("I'm " + name + ", I'm alive!");
}
void IDisposable.Dispose()
{
Console.WriteLine("I'm " + name + ", I'm dead!");
}
}
class Program
{
static void Main()
{
// 可以在using语句中声明多个相同类型的实例.
using (Instance a = new Instance("a"), b = new Instance("b"))
{
a.UseLimitedResource();
b.UseLimitedResource();
// 在语句体内声明的实例不受using控制.
Instance c = new Instance("c");
c.UseLimitedResource();
}
Console.WriteLine("Now outside using statement.");
Console.ReadLine();
}
}