Puis-je utiliser des variables d'une méthode à l'autre?

Puis-je utiliser une variable déclarée ou une instance d'un object d'une méthode à une autre?

private void OnBrowseFileClick(object sender, RoutedEventArgs e) { ssortingng path = null; path = OpenFile(); } private ssortingng OpenFile() { ssortingng 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; } 

Maintenant, je veux get ce path et l'écrire sur excel. Comment vais-je faire cela, aidez-moi, j'ai une semaine d'utilisation de C #.

 private void btnCreateReport_Click(object sender, RoutedEventArgs e) { ssortingng filename = "sample.xls"; //Dummy Data ssortingng functionName = "functionName"; //Dummy Data ssortingng path = null; AnalyzerCore.ViewModel.ReportGeneratorVM reportGeneratorVM = new AnalyzerCore.ViewModel.ReportGeneratorVM(); reportGeneratorVM.ReportGenerator(filename, functionName, path); } 

Merci

Utilisez un champ d'instance pour stocker la valeur de votre variable.

Ainsi:

 public class MyClass { // New instance field private ssortingng _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) { ssortingng filename = "st_NodataSet.xls"; //Dummy Data ssortingng functionName = "functionName"; //Dummy Data AnalyzerCore.ViewModel.ReportGeneratorVM reportGeneratorVM = new AnalyzerCore.ViewModel.ReportGeneratorVM(); // Reuse the instance field here reportGeneratorVM.ReportGenerator(filename, functionName, _path); } } 

Voici un lien qui décrit les champs avec beaucoup plus de détails que ce que je pourrais.

Déplacez le ssortingng path tant que membre dans votre class et supprimez la déclaration dans les methods. ça devrait le faire

Utilisez le path de string comme variable de niveau de class.

Utilisez un path de string privé statique si vous souhaitez l'utiliser entre les pages.

Utilisez un path de string privé si vous devez l'utiliser uniquement sur la page actuelle.

vous devez définir la variable comme champ dans votre class:

 Private ssortingng path = null; 

utiliser static private ssortingng path;