正在阅读:C#中的异常处理(三)C#中的异常处理(三)

2004-02-14 09:34 出处:PConline 作者:ivsee/CSDN 责任编辑:linjixiong
  换句话,就是这样:
 
  using (AutoTextReader scoped = file.OpenText())
  {
    scoped.TextReader.Read(source, 0, length);
  }
  被转换为:
  {
    AutoTextReader scoped = new file.OpenText();
    try
    {
        scoped.TextReader.Read(source, 0, length);
    }
    finally
    {
        scoped.Dispose();
    }
  }
 
  由此,我更喜欢使用using语句代替finally程序开来处理。事实上,using语句解决方式相较于开始的    “理想“版本还有如下额外的几个优点,一个using语句:
 
  ·运行中,它能够一直释放资源
 
  ·是一个扩展机制。它允许你创建一个资源释放的集合。创建你自己的资源释放类例如  AutoTextReader是容易的。
 
  ·允许你将资源获取和资源释放配对使用。释放资源最好的时刻就是你获得资源的一刻。就像如  果你从图书馆借了一本书,你能在你借的时候被告知什么时候归还。】
 
  ·根据句法构造,能够清楚的告诉你你正在使用一个资源。
 
  ·为拥有资源的变量创造一个范围。仔细观察对using语句的编译器转换,你将发现它聪明的使用了一对外部括号。
 
     using (AutoTextReader scoped = file.OpenText())
    {
          scoped.TextReader.Read(source, 0, length);
     }
     scoped.TextReader.Close(); // scoped is not in scope here
 
    这是对C++中依据条件声明的追溯。允许你限制变量使用的范围,仅仅在这个范围内,变量是有用的,当变量能够使用,它只能存在于这个范围内。
键盘也能翻页,试试“← →”键

关注我们

最新资讯离线随时看 聊天吐槽赢奖品