【问题标题】:C# Access functions within methods方法中的 C# 访问函数
【发布时间】:2013-03-27 00:05:17
【问题描述】:
我在一个类中创建了一个方法,我想从同一个类中的另一个方法访问流读取器 sr1,但我似乎无法访问该方法!
public void showSelectedFile()
{
StreamReader sr1 = new StreamReader(File.OpenRead(ReturnTxt));
ReturnContenctRD = sr1.ReadToEnd();
}
public void DisposeSR1()
{
}
谁能向我解释如何从其他功能访问/更改这些方法?
【问题讨论】:
标签:
c#
function
methods
external
streamreader
【解决方案1】:
sr1 是 showSelectedFile() 方法的本地;当方法返回时,它超出了范围。如果你想让它对其他方法可见,你必须让它成为你的类的成员:
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();
}
}
【解决方案2】:
您需要将 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()
}
}