0

あるメソッドから別のメソッドへ、宣言された変数またはオブジェクトのインスタンスを使用できますか?

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#を使用して1週間経ちました。

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

ありがとう

4

5 に答える 5

3

インスタンス フィールドを使用して、変数の値を格納します。

そのようです:

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

これは、私ができるよりもはるかに詳細にフィールドを説明するリンクです。

于 2013-03-16T12:27:04.337 に答える
0

クラスのフィールドとして変数を定義する必要があります。

Private string path = null;
于 2013-03-16T12:28:39.740 に答える
0

string pathをメンバーとしてクラス内に移動し、メソッド内の宣言を削除します。それはそれをするべきです

于 2013-03-16T12:27:42.120 に答える
0

文字列パスをクラス レベル変数として使用します。

ページ間で使用する場合は、静的なプライベート文字列パスを使用します。

現在のページでのみ使用する必要がある場合は、プライベート文字列パスを使用します。

于 2013-03-16T12:27:53.100 に答える
-1

使用するstatic private string path;

于 2013-03-16T12:26:16.343 に答える