.NET中的Environment.NewLine没有正确的值

时间:2010-08-03 16:51:57

标签: vb.net

Environnent.NewLine似乎正在解析为两个空格“”(与vbCrLf和ControlChars.CrLF一样)。使用StringBuilder,AppendLine也是这样做的。

我一直绞尽脑汁,在互联网上搜索,试图弄清楚为什么会这样,但是我的空白了。

我正在尝试根据用户界面决策生成.bat文件。我需要在线之间进行分离。我在尝试:

Dim sb as New StringBuilder
With sb
.Append("Something")
.AppendLine()
.Append("Something else{0}", Environment.NewLine)
.Append("Third line")
End With

当我解析sb.ToString()时,一切都在一行上。在crlf应该是的地方,有两个空格(十六进制20)。

这是Visual Studio 2010 Ultimate。

帮助!感谢。

2 个答案:

答案 0 :(得分:2)

StringBuilder.Append不接受格式字符串。你想要AppendFormat

Dim sb as New StringBuilder
With sb
.Append("Something")
.AppendLine()
.AppendFormat("Something else{0}", Environment.NewLine)
.Append("Third line")
End With

此外,根据您正在查看的 where (如Visual Studio调试器窗口),可以替换换行符。

答案 1 :(得分:0)

你确定是这样的吗?您是否尝试将字符串输出到文件或控制台以验证您是否没有获取换行符?

我建议至少输出到控制台窗口以先验证您的问题,然后对此进行评论。

为了它的价值,当我复制你的代码并输出到WinForms richtextbox控件时,输出如下:

  

东西
其他东西
第三   线

我的源代码(C#)如下:

    void Form1_Load(object sender, EventArgs e)
    {
        StringBuilder sb = new StringBuilder();
        sb.Append("First Line").AppendLine().Append(String.Format("SecondLine{0}", Environment.NewLine)).Append("ThirdLine");
        richTextBox1.Text = sb.ToString();
    }