簡體   English   中英

C# Streamwriter 通過按鈕啟用

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

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM