2009-01-21 27 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); 
     } 
    } 
} 
相關問題