C# 在其他方法中使用字符串
我有以下代码。我需要这样做:C# 在其他方法中使用字符串,c#,wpf,string,C#,Wpf,String,我有以下代码。我需要这样做: public void Window1() { InitializeComponent(); opendirectory(); } public void opendirectory() { Stream checkStream = null; Microsoft.Win32.OpenFileDialog openFileDialog = new Microsoft.Win32.OpenFileDialog(); openF
public void Window1()
{
InitializeComponent();
opendirectory();
}
public void opendirectory()
{
Stream checkStream = null;
Microsoft.Win32.OpenFileDialog openFileDialog = new Microsoft.Win32.OpenFileDialog();
openFileDialog.Multiselect = false;
if ((bool)openFileDialog.ShowDialog())
{
try
{
if ((checkStream = openFileDialog.OpenFile()) != null)
{
// i need the following code to be stored as a string
string antcbatchlocation = openFileDialog.FileName;
}
}
catch (Exception ex)
{
System.Windows.MessageBox.Show("Error: Could not read file from disk. Original error: " + ex.Message);
}
}
else
{
System.Windows.MessageBox.Show("Problem occured, try again later");
}
}
然后,我将在稍后的按钮事件中使用该字符串:
public void BuildButton_Click(object sender, RoutedEventArgs e)
{
System.Diagnostics.Process runantc = new System.Diagnostics.Process();
runantc.StartInfo.FileName = antcbatchlocation;
}
这个字符串作为变量可能有问题。似乎字符串antcbatchlocation被声明为局部变量。如果是这样的话,我应该如何着手修复它?请帮忙,谢谢 您应该将字符串声明为
Window1
类的私有成员,而不是opendirectory
方法中的局部变量。然后,在您的按钮单击方法中,只需检查以确保字符串不为null,这样您就知道用户已经通过了您的对话框并首先选择了一个文件。您需要使用一个实例变量。这意味着它是类实例的局部变量(在本例中为“Window1”)。这也意味着该类实例中的任何方法都可以访问它
在类declreation中添加这行代码,就在public Window1(){}
构造函数的正上方
private string\u BatchLocation代码>
然后在opendirectory()
方法中,不要创建本地字符串变量,而是将openFileDialog.FileName
设置为此实例变量
\u BatchLocation=openFileDialog.FileName代码>
然后,您可以在单击事件处理程序中访问它。。。因此,您的代码如下所示:
runantc.StartInfo.FileName=_BatchLocation
有关更多信息,请查看此帖子: