我可以使用声明的变量或对象的实例从一种方法到另一种方法吗?
private void OnBrowseFileClick(object sender, RoutedEventArgs e)
{
string path = null;
path = OpenFile();
}
private string OpenFile()
{
string path = null;
OpenFileDialog fileDialog = new OpenFileDialog();
fileDialog.Title = "Open source file";
fileDialog.InitialDirectory = "c:\\";
fileDialog.Filter = "txt files (*.txt)|*.txt|All files (*.*)|*.*";
fileDialog.FilterIndex = 2;
fileDialog.RestoreDirectory = true;
Nullable<bool> result = fileDialog.ShowDialog();
if (result == true)
{
path = fileDialog.FileName;
}
textBox1.Text = path;
return path;
}
现在,我希望获得该路径并将其写在excel上。我将如何做到这一点,请帮助,我已经使用C#一周了。
private void btnCreateReport_Click(object sender, RoutedEventArgs e)
{
string filename = "sample.xls"; //Dummy Data
string functionName = "functionName"; //Dummy Data
string path = null;
AnalyzerCore.ViewModel.ReportGeneratorVM reportGeneratorVM = new AnalyzerCore.ViewModel.ReportGeneratorVM();
reportGeneratorVM.ReportGenerator(filename, functionName, path);
}
由于
答案 0 :(得分:2)
使用实例字段存储变量的值。
像这样:
public class MyClass
{
// New instance field
private string _path = null;
private void OnBrowseFileClick(object sender, RoutedEventArgs e)
{
// Notice the use of the instance field
_path = OpenFile();
}
// OpenFile implementation here...
private void btnCreateReport_Click(object sender, RoutedEventArgs e)
{
string filename = "st_NodataSet.xls"; //Dummy Data
string functionName = "functionName"; //Dummy Data
AnalyzerCore.ViewModel.ReportGeneratorVM reportGeneratorVM = new AnalyzerCore.ViewModel.ReportGeneratorVM();
// Reuse the instance field here
reportGeneratorVM.ReportGenerator(filename, functionName, _path);
}
}
Here是一个链接,它比我能更详细地描述字段。
答案 1 :(得分:0)
将string path
作为成员移动到您的类中,并删除方法中的声明。应该这样做
答案 2 :(得分:0)
使用字符串路径作为类级别变量。
如果要在页面之间使用,请使用静态专用字符串路径。
如果您只需要在当前页面上使用私有字符串路径,请使用私有字符串路径。
答案 3 :(得分:0)
您必须在类中将变量定义为字段:
Private string path = null;
答案 4 :(得分:-1)
使用static private string path;