有以下代码
 // Open the stream and read it back.
        using (StreamReader sr = File.OpenText(path)) 
        {
            string s = "";
            while ((s = sr.ReadLine()) != null) 
            {
                Console.WriteLine(s);
            }
        }using(..)括起来是什么意思?

解决方案 »

  1.   

    在 using 语句中创建一个实例,确保退出 using 语句时在对象上调用 Dispose。//重点在这
    当到达 using 语句的末尾,或者如果在语句结束之前引发异常并且控制离开语句块,都可以退出 using 语句。
      

  2.   

    C#ECMA标准描述using声明:
    using (type variable = initialization)
        embeddedStatement
    它等同于
    {
        type variable = initialization;
        try
        {
            embeddedStatement
        }
        finally
        {
            if (variable != null) 
            {
                ((IDisposable)variable).Dispose();
            }
        }
    }
      

  3.   

    using在C#中有两种用法:
    1、就是引用命名空间
    2、就是你要问的,using (StreamReader sr = File.OpenText(path)) {}意思是在执行完using()的大括号中的语句时,将调用对象的Dispose方法,将对象从托管堆中释放。
    这个语句和以下这个语句是相等的。
    StreamReader sr;
    try
    {
     sr = File.OpenText(path);
    }
    finally
    {
      sr.Dispose();
    }
    不是所有的对象声明都可以这样写,对于对象中没有包含Dispose方法的,不能用这个语句写。
      

  4.   

    using在C#中有两种用法:
    1、就是引用命名空间
    2、就是你要问的,using (StreamReader sr = File.OpenText(path)) {}意思是在执行完using()的大括号中的语句时,将调用对象的Dispose方法,将对象从托管堆中释放。你的这句的主要的作用是2中的。为了释放资源。
      

  5.   

    同意WZCNet(只有想不到,没有做不到)