C# 关键字—using

using 关键字有两个主要用途:

(一)作为指令,用于为命名空间创建别名或导入其他命名空间中定义的类型。

(二)作为语句,用于定义一个范围,在此范围的末尾将释放对象。

using指令

1)允许在命名空间中使用类型,这样,你就不必在该命名空间中限定某个类型的使用:

1 using System.Text;
2 using PC.Company;

2)为命名空间或类型创建别名:

1 using MyCommany=PC.Company;//命名空间的别名。
2 using SDPoint=System.Drawing.Point;

尽管我们可以通过类型全名称来加以区分,但是这显然不是最佳的解决方案。用using指令创建别名,有效的解决了这种可能的命名冲突,才是最佳的解决方案。

using语句

  using语句允许程序员指定使用资源的对象应当何时释放资源。using语句中使用的对象必须实现Idisposable接口。此接口提供了Dispose方法,该方法将释放此对象的资源。

1)可以在using语句之中声明对象。

1 Font font2=new Font(“Arial”,10.0f);
2 {
3     //use font2
4 }

2)可以在using语句之前声明。

1 using(Font font2=new Font(“Arial”,10.0f))
2 {
3     //use font2
4 }

3)可以有多个对象与using语句一起使用,但是必须在using语句内部声明这些对象。

1 using(Font font2=new Font(“Arial”,10.0f),font4=new Font(“Arial”,10.0f))
2 {
3     //use font3 and font4
4 }

使用规则:

1)using只能用于实现了Idisposable接口的类型,禁止为不支持Idisposable接口的类型使用using语句,否则会出现编译错误;

2)using语句适用于清理单个非托管资源的情况,而多个非托管对象的清理最好以try-finally来实现,因为嵌套的using语句可能存在隐藏的Bug。内层using块引发异常时,将不能释放外层using块的对象资源;

3)using语句支持初始化多个变量,但前提是这些变量的类型必须相同,例如:

1 using(Pen p1=new Pen(Brushers.Black),p2=new Pen(Brusher.Blue))
2 {
3     //
4 }

4)针对初始化对个不同变量时,可以都声明为Idisposable类型,例如:

1 using (Idisposable font=new Font(“Verdana”,12),pen=new Pen(Brusher.Black))
2 {
3     float size=(font as Font).Size;
4     Brush brush=(pen as Pen).Brush;
5 }

using实质

在程序编译阶段,编译器会自动将using语句生产为try-finally语句,例如:

1 Font f2=new Font(“Arial”,10,FontStyle.Bold);
2 try
3 {
4     //执行文本绘制操作
5 }
6 finally
7 {
8     if(f2!=null)((IDisposable)f2.Dispose();
9 }


 

转载于:https://www.cnblogs.com/fuddlemare/archive/2012/02/06/2339672.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值