c#访问方法中的函数

本文关键字:函数 方法 访问 | 更新日期: 2023-09-27 18:05:57

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

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

谁能解释给我如何访问/改变这些方法从其他函数?

c#访问方法中的函数

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();
     }
}

您需要将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()
    }
}