class Program
    {
   string filename= @"filename.txt";
        StreamReader reader; .......         static void Main(string[] args)
        {
 
            Op.fOpen(filename,out reader );        }//end void main() 
        //
        class OpenFile
        {
            public void fOpen(string str,out StreamReader rd)
            {
               rd = new StreamReader(str, Encoding.Default);
            }
        }//end OpneFile 
    }
}
报错是
Error 1 An object reference is required for the nonstatic field, method, or property 'FileProcess.Program.reader'
没有其他错了
请问是哪里错了呢?
谢谢

解决方案 »

  1.   

    为什么用out ref可以搞定的, 至于区别倒看过,但是没去仔细研究
      

  2.   

    调查了一下
    out必须在函数体内初始化,在外面初始化没意义。也就是说,out型的参数在函数体内不能得到外面传进来的初始值。
      

  3.   

    昏倒了,StreamReader是引用型变量,不需要使用ref,out这种关键字。在调用方法的时候直接传的是引用。一般只有多个值类型的需要同时返回才用ref,out这种关键字。
      

  4.   

    如果你想返回StreamReader,直接用return就可以了