0

我在一个类中创建了一个方法,我想从同一个类中的另一个方法访问流读取器 sr1,但我似乎无法访问该方法!

public void showSelectedFile() 
    { 
        StreamReader sr1 = new StreamReader(File.OpenRead(ReturnTxt));
        ReturnContenctRD = sr1.ReadToEnd();
    }
public void DisposeSR1() 
    { 

    }

谁能向我解释如何从其他功能访问/更改这些方法?

4

2 回答 2

3

sr1showSelectedFile()方法本地的;当方法返回时,它超出了范围。如果要使其对其他方法可见,则必须使其成为类的成员:

StreamReader sr1;

public void showSelectedFile() 
{ 
     sr1 = new StreamReader(File.OpenRead(ReturnTxt))
     ReturnContenctRD = sr1.ReadToEnd();
}

public void DisposeSR1() 
{ 

}

如果只是正确处理它的问题,请将其包装在一个using语句中:

public void showSelectedFile() 
{ 
     using (StreamReader sr1 = new StreamReader(File.OpenRead(ReturnTxt)))
     {
         ReturnContenctRD = sr1.ReadToEnd();
     }
}
于 2013-03-27T00:07:23.637 回答
0

您需要将 StreamReader 存储在类成员变量中

例如

class YourClass
{
    private StreamReader _sr1;

    public void showSelectedFile() 
    { 
        _sr1 = new StreamReader(File.OpenRead(ReturnTxt));
        ReturnContenctRD = _sr1.ReadToEnd();
    }

    public void DisposeSR1() 
    { 
       if(_sr1 != null)
          _sr1.Dispose()
    }

}
于 2013-03-27T00:09:02.267 回答