我想要bild从streamwriter中的内容保存文件,但是在这段代码中

SaveFileDialog savefile = new SaveFileDialog();
                savefile.FileName = "unknown.txt";
                savefile.Filter = "Text files (*.txt)|*.txt|All files (*.*)|*.*|";
                if (savefile.ShowDialog() == DialogResult.OK)
                {
                    using (StreamWriter sw = new StreamWriter(savefile.FileName, false, System.Text.Encoding.Unicode))
                    sw.WriteLine("Test line");
                    sw.WriteLine("Test line2");
                    sw.WriteLine("Test line3");
                }


sw.WriteLine("Test line2"); sw.WriteLine("Test line3");行中,是错误,sw不存在!

但是我很少使用代码

using (StreamWriter sw = new StreamWriter("\unknow.txt", false,System.Text.Encoding.Unicode)) sw.WriteLine("Test line"); sw.WriteLine("Test line2"); sw.WriteLine("Test line3");

一切正常!问题出在哪里?
谢谢 !

最佳答案

您只需要添加括号:

using (StreamWriter sw = new StreamWriter(savefile.FileName,
          false, System.Text.Encoding.Unicode))
{
     sw.WriteLine("Test line");
     sw.WriteLine("Test line2");
     sw.WriteLine("Test line3");
}


变量sw对于using()语句的作用域是局部的。没有大括号,这只是第一个WriteLine()。

using()的作用域规则与if()相同,您已经正确使用了。

关于c# - SaveFileDialog使C#中的Streamwriter出现问题,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/11776781/

10-11 16:09