我们在连接数据库的时候经常会使用到using的语法,类似下面这句
using (SqlConnection conn = new SqlConnection(source))
{
//code
}
那么using关键词有什么作用呢?如果一个类实现了接口IDisposable(这个接口只有一个方法void Dispose()),当这个类在using中创建的时候,using代码块结束时会自动调用这个类中实现了接口IDisposable的Dispose()方法。我们一般会在Dispose()方法中做些释放资源的动作。
下面是using使用的一个示例代码:
Code
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;
namespace ConsoleApplication3
{
class Program
{
static void Main(string[] args)
{
using (Person ps = new Person())
{
Console.WriteLine("AA");
}
Console.WriteLine("BB");
Console.ReadKey();
}
}
public class Person : IDisposable
{
public void Dispose()
{
Console.WriteLine("我实现了Dispose方法!");
}
}
}
执行程序的结果是输出三行:
AA
我实现了Dispose方法!
BB
using (SqlConnection conn = new SqlConnection(source))
{
//code
}
那么using关键词有什么作用呢?如果一个类实现了接口IDisposable(这个接口只有一个方法void Dispose()),当这个类在using中创建的时候,using代码块结束时会自动调用这个类中实现了接口IDisposable的Dispose()方法。我们一般会在Dispose()方法中做些释放资源的动作。
下面是using使用的一个示例代码:
![ContractedBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/ContractedBlock.gif)
![ExpandedBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif)
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;
namespace ConsoleApplication3
{
class Program
{
static void Main(string[] args)
{
using (Person ps = new Person())
{
Console.WriteLine("AA");
}
Console.WriteLine("BB");
Console.ReadKey();
}
}
public class Person : IDisposable
{
public void Dispose()
{
Console.WriteLine("我实现了Dispose方法!");
}
}
}
执行程序的结果是输出三行:
AA
我实现了Dispose方法!
BB