尝试运行我的代码时出错

时间:2014-09-07 16:23:06

标签: c# monodevelop

我正在尝试制作这个有5个输入框的程序,当您单击按钮并将其保存到.txt文件时,需要保存已放入框中的内容。

    protected void OnDeleteEvent (object sender, DeleteEventArgs a)
{
    Application.Quit ();
    a.RetVal = true;
}

protected void button1_Click(object sender, EventArgs e) {
    string tb1Text = tb1.Text;
    string tb2Text = tb2.Text;
    string tb3Text = tb3.Text;
    string tb4Text = tb4.Text;
    string tb5Text = tb5.Text;

    using(StreamWriter sw = new StreamWriter("/Home/Desktop/Test.txt")) {
        sw.WriteLine(tb1Text + Environment.NewLine + tb2Text + Environment.NewLine + tb3Text + Environment.NewLine + tb4Text + Environment.NewLine + tb5Text);
}

我在这里做错了什么?我在第二行到最后一行代码中收到错误“Unexpected symbol'end-of-file'”。

3 个答案:

答案 0 :(得分:1)

您在StreamWriter线上有一个额外的大括号。 <或者

using (StreamWriter sw = new StreamWriter("/Home/Desktop/Test.txt"))
     sw.WriteLine(..);

using (StreamWriter sw = new StreamWriter("/Home/Desktop/Test.txt"))
{
    sw.WriteLine(..);
}

顺便说一下。你可能想要查看String.Join()方法,你可能会摆脱&#34; + NewLine&#34;码。 String.Join(Environment.NewLine, tb1.Text,tb2.Text etc....)

答案 1 :(得分:0)

我建议你在代码中使用一致的样式,有时你把括号放在下一行,有时你把它放在同一行。选择一种风格(第一种风格更为普遍)并坚持下去。

protected void OnDeleteEvent (object sender, DeleteEventArgs a)
{

protected void button1_Click(object sender, EventArgs e) {

当一段代码是oneliner时,就像你的最后一行代码一样,你可以省略大括号:

using(StreamWriter sw = new StreamWriter("/Home/Desktop/Test.txt"))
    sw.WriteLine(tb1Text + Environment.NewLine + tb2Text + Environment.NewLine + tb3Text + Environment.NewLine + tb4Text + Environment.NewLine + tb5Text);

相当于:

using(StreamWriter sw = new StreamWriter("/Home/Desktop/Test.txt"))
{
    sw.WriteLine(tb1Text + Environment.NewLine + tb2Text + Environment.NewLine + tb3Text + Environment.NewLine + tb4Text + Environment.NewLine + tb5Text);
}

您的问题是您的代码中只有一个大括号。

答案 2 :(得分:0)

using(StreamWriter sw = new StreamWriter("/Home/Desktop/Test.txt")) {

这行有问题。将代码更改为

using(StreamWriter sw = new StreamWriter("c:\\username\\Home\\Desktop\\Test.txt")) {

它的所有基础知识,窗口显示的路径与语言上指定的路径不同。程序将“/”视为一个简单的字符,而它又将其视为单个文件名。同时“\”是一个特殊的角色,它可以清楚地区分路径;所以它必须做一点点不同。