2009-01-21 70 views
9

定义一个新行在C#中有没有一种方法? (如在VB _)如何在C#源代码中的字符串中添加新行?

实施例:

代替:

string myStr = "very long string" + 
"another long string"; 

此:

string myStr = "very long string \something 
another long string" 

OR;编译器是否处理这个问题并执行类似操作“string”+“string” - >“stringstring”在这个例子中?

不同的情况,欢迎时,这些字符串是常量像等

回答

22

编译器开启“ABC” +“DEF”到“ABCDEF”所以在不使用成本+

19

您可以使用

string myStr = @"very long string 
another long string"; 

@”是一个字符串的开头文字和这种字符串并没有结束,直到下一个“字符被找到。

c#没有一个确切的语法,它与vb中的_字符具有相同的功能。所以如果你想避免包含一个新行,你必须在不同的行上手动连接你的字符串。

+0

这是正确的,但您必须注意不要缩进第二行。否则,空格(空格或制表符)将成为结果字符串的一部分。 – M4N 2009-01-21 12:21:34

+2

哦,换行符也将成为结果字符串的一部分。 – M4N 2009-01-21 12:23:33

+0

“哦,并且换行符也是结果字符串的一部分”,是的,这不好。对于我的情况没什么大不了的,但是这样做不能像VB中的_那样做。 – erdogany 2009-01-21 12:29:06

-3

一个StringBuilder应该比单纯使用尽可能使用连接字符串,因为它的运行速度更快“这个” +“那”。

3

我相信你正在寻找的是C#线延续字符。

停止寻找。空无一人。在C#中,一行以分号“;”结束到达了。

因此,正如其他人所提到的,如果您想分解字符串分配,只需使用'+'字符即可。


namespace Jaberwocky 
{ 
    class Program 
    { 
     public static void Main(string[] args) 
     { 
      string s = "Hello World! " + 
       "This is a long string " + 
       "That continues on and " + 
       "on and on and on."; 
      Console.WriteLine(s); 
      Console.ReadKey(true); 
     } 
    } 
} 
相关问题