[英]C# Streamwriter enabling by button
我想创建一个应用程序,我可以在其中创建文件,通过单击按钮向其中写入内容,然后通过单击另一个按钮关闭该文件。 问题是,当我在一个按钮内声明 Streamwrtier 对象时,我无法从第二个按钮内调用文件关闭方法,因为我遇到了这样的错误:当前上下文中不存在名称“文件” 。 当我在按钮方法之外启动 Streamwriter 时,问题消失了,但是在我单击按钮之前正在创建文件。 你知道我怎样才能克服这个问题吗?
public void button1_Click(object sender, EventArgs e)
{
button1.Visible = false;
button2.Visible = true;
StreamWriter file = new StreamWriter("test.txt");
file.WriteLine(value.ToString());
}
private void button2_Click(object sender, EventArgs e)
{
button1.Visible = true;
button2.Visible = false;
file.Close();
}
这是基本的修复:
private StreamWriter file = null;
public void button1_Click(object sender, EventArgs e)
{
button1.Visible = false;
button2.Visible = true;
if (file == null)
file = new StreamWriter("test.txt");
file.WriteLine(value.ToString());
}
private void button2_Click(object sender, EventArgs e)
{
button1.Visible = true;
button2.Visible = false;
if (file is object)
file.Close();
}
但实际上,在大多数情况下保持文件打开是一种糟糕的做法。 你通常想要更像这样的东西,它一次性处理打开和关闭必要的流,并且只在最短的必要持续时间内保持文件打开:
public void button1_Click(object sender, EventArgs e)
{
File.AppendAllText("test.txt", value.ToString());
}
由于我们总是立即关闭文件,因此根本不需要第二个按钮。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.