C# 使用与开关块中相同格式的字符串中的值

C# 使用与开关块中相同格式的字符串中的值,c#,string,winforms,C#,String,Winforms,对不起,这个问题可能很简单,但我找不到解决办法 例如,我在一个开关中有一个字符串,我想在另一个块中使用该字符串及其值,但我得到以下消息“当前上下文中不存在名称'getFileName' 代码如下: switch (ofd.ShowDialog()) { case DialogResult.OK: string getFileName = Path.GetFullPath(ofd.FileName); labelStatus.Text += getFileName; break; } 如何在其他

对不起,这个问题可能很简单,但我找不到解决办法

例如,我在一个开关中有一个字符串,我想在另一个块中使用该字符串及其值,但我得到以下消息“当前上下文中不存在名称'getFileName'

代码如下:

switch (ofd.ShowDialog())
{
case DialogResult.OK:
string getFileName = Path.GetFullPath(ofd.FileName);
labelStatus.Text += getFileName;
break;
}
如何在其他块中使用字符串getFileName及其值(在不同块或类似块中以相同形式)


提前感谢。

在两个函数之外声明变量,以便任何函数都可以访问该变量

private string getFileName = '';

protected override void SomeFunction(){
    switch (ofd.ShowDialog())
    {
        case DialogResult.OK:
             getFileName = Path.GetFullPath(ofd.FileName);
             labelStatus.Text += getFileName;
             break;
    }
}

private void button1_Click(object sender, EventArgs e) { 
try { 
     Process.Start(getFileName); 
    } catch { //... } 
}

我建议您在YouTube上搜索c#.net变量范围,以便更好地了解何时可以访问变量:)

开关
之外设置
getFileName
<代码>字符串getFileName=“”你可以在开关块之外声明它-但是你需要给它一些值,当你不符合这种情况时使用。谢谢你的想法,但是
私有的void按钮1\u点击(objectsender,EventArgs e){try{Process.Start(getFileName);}catch{/…}
获取一个空值,等等。我构建了一个开关,用户可以选择exe文件,exe文件中的值将存储在getFileName中,但我需要另一个块中的值。编辑:似乎可以工作,块外的字符串是完整的,这是我的错误。
private string getFileName = '';

protected override void SomeFunction(){
    switch (ofd.ShowDialog())
    {
        case DialogResult.OK:
             getFileName = Path.GetFullPath(ofd.FileName);
             labelStatus.Text += getFileName;
             break;
    }
}

private void button1_Click(object sender, EventArgs e) { 
try { 
     Process.Start(getFileName); 
    } catch { //... } 
}