在事件-C#.NET中声明公共字符串时出现问题
我有一个事件,我想声明一个在事件-C#.NET中声明公共字符串时出现问题,c#,.net,C#,.net,我有一个事件,我想声明一个公共字符串,它表示我的openFileDialog中的文件路径。我想这样做,以便以另一种形式访问文件路径 以下是我如何努力做到这一点: private void confirmButton_Click(object sender, EventArgs e) { SaveFileDialog ofd = new SaveFileDialog(); if (ofd.ShowDialog() == DialogResult.OK)
公共字符串
,它表示我的openFileDialog
中的文件路径
。我想这样做,以便以另一种形式访问文件路径
以下是我如何努力做到这一点:
private void confirmButton_Click(object sender, EventArgs e)
{
SaveFileDialog ofd = new SaveFileDialog();
if (ofd.ShowDialog() == DialogResult.OK)
{
//DO STUFF WITH SELECTED FILE
}
public string fileName = ofd.FileName;
}
当我试图将字符串声明为public时,会出现一系列语法错误,我还尝试将事件更改为public事件,但是这并不能解决问题
非常感谢您的帮助。您不能在方法(或事件)中声明属性或字段
我猜你想要的是更像这样的东西
public string filename { get; set; }
private void confirmButton_Click(object sender, EventArgs e)
{
SaveFileDialog ofd = new SaveFileDialog();
if (ofd.ShowDialog() == DialogResult.OK)
{
//DO STUFF WITH SELECTED FILE
}
filename = ofd.FileName;
}
原因是,您在方法体内声明的任何内容都只在该方法体内起作用。因此,标记为public
的内容没有多大意义。通过将它从方法体中拉出并从那里简单地引用它,您可以做更多的事情。您不能在方法(或事件)中声明属性或字段
我猜你想要的是更像这样的东西
public string filename { get; set; }
private void confirmButton_Click(object sender, EventArgs e)
{
SaveFileDialog ofd = new SaveFileDialog();
if (ofd.ShowDialog() == DialogResult.OK)
{
//DO STUFF WITH SELECTED FILE
}
filename = ofd.FileName;
}
原因是,您在方法体内声明的任何内容都只在该方法体内起作用。因此,标记为public
的内容没有多大意义。通过将它从方法体中拉出并从那里简单地引用它,您可以做更多的事情。您将该字符串声明为非公共字符串。它在方法内部。尝试:
public string fileName;
private void confirmButton_Click(object sender, EventArgs e)
{
SaveFileDialog ofd = new SaveFileDialog();
if (ofd.ShowDialog() == DialogResult.OK)
{
//DO STUFF WITH SELECTED FILE
fileName = ofd.FileName;
}
}
您正在声明该字符串不是公共的。它在方法内部。尝试:
public string fileName;
private void confirmButton_Click(object sender, EventArgs e)
{
SaveFileDialog ofd = new SaveFileDialog();
if (ofd.ShowDialog() == DialogResult.OK)
{
//DO STUFF WITH SELECTED FILE
fileName = ofd.FileName;
}
}
谢谢,非常有用的答案。更深入一点:方法体中声明的所有标准变量只能在方法执行期间访问(只有少数例外),因此您的公共变量将在方法执行后被释放,不再存在。顺便说一句:去给他最好的答案。:)谢谢,非常有用的答案。更深入一点:方法体中声明的所有标准变量只能在方法执行期间访问(只有少数例外),因此您的公共变量将在方法执行后被释放,不再存在。顺便说一句:去给他最好的答案。:)