C#访问方法中的函数

时间:2013-03-27 00:05:17

标签: c# function methods external streamreader

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

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

    }

有人可以向我解释如何从其他功能访问/更改这些方法吗?

2 个答案:

答案 0 :(得分: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();
     }
}

答案 1 :(得分:0)

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

e.g。

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

}