[英]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.