我可以使用从一种方法到另一种方法的变量吗?

时间:2013-03-16 12:24:21

标签: c# excel

我可以使用声明的变量或对象的实例从一种方法到另一种方法吗?

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

由于

5 个答案:

答案 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;