c#Escape Seq \ n无效

时间:2016-02-16 08:20:39

标签: c# escaping

我想在WinForm应用程序中插入这样的新行:VS2015 .net 4.5

  class Program
{
    private static List<ZONE> zones;

    static void Main(string[] args)
    {
        StringBuilder sb = new StringBuilder();
        sb.Append("line1" + Environment.NewLine);
        sb.Append("line2");

    }

}

sb.ToString在&#34; line1&#34;之间不包含换行符;和&#34; line2&#34; 我不知道为什么。

3 个答案:

答案 0 :(得分:1)

\n的含义取决于您使用的平台。如果你在Windows上,它实际上是\r\n

但更好的是,使用Environment.NewLine属性。

答案 1 :(得分:1)

使用StringBuilder.AppendLine()它会自动附加当前的Environment.NewLine值。

 class Program
 {
    private static List<ZONE> zones;

    static void Main(string[] args)
    {
        StringBuilder sb = new StringBuilder();
        sb.AppendLine("line1");
        sb.AppendLine("line2");
        Console.WriteLine(sb.ToString());

    }
}

sb.ToString()上的断点中有THIS,因为你可以看到休息点在那里。

所以它会输出你期望的,或者至少应该输出。这不会考虑本地化问题。

答案 2 :(得分:1)

你可以试试这个:

  StringBuilder sb = new StringBuilder();

  sb.Append("line1");
  sb.AppendLine();
  sb.Append("line2");

  String result = sb.ToString();

甚至更好:

  String result = String.Join(Environment.NewLine, "line1", "line2");