眾所周知,如果你需要在**中定義乙個較長的字串,首先我會想把它們放在多行上(因為放在一行上會不便於閱讀),這樣**即美觀又便於閱讀;這就需要續行符了。
在c/c++中續行符可以用 \ 或二字"括起來的字串來表示,如:
char* str1 = "string one\
two";
或char* str2 = "string one"
"two";
在vb中續行符可以用_來表示,如:(vb語法有些忘了,不過續行符_是沒錯的)
dim str1 as string
str1="string one"_
"two"
可是到了c#,找遍msdn也沒有找到有關續行符的語法(如果有高手知道還請指點),不過在c#可是用「通用」的字串「續行符」,如:
string str1="string one"+
"two";
很明顯這只是普通的字串拼接,跟本不是什麼續行符,不過c#的編譯器是很智慧型的,將上面的**編譯後生成的il指令轉換為源**後是這樣的:
string str1="string onetwo";
也就是說c#編譯器自動將它們連線,並視乙個字串常量了。
再看下面這個例子:
string str1="three";
string str2="string "+"one "+str1;
你會想到編譯後生成的源**是什麼嗎?
沒錯,上面的**編譯後生成的il指令轉換為源**就是:
string str1="three";
string str2="string one "+str1;
最後c#還有一種方法可以定義超長字串,但這種方法會將回車換行符等視有效字串;如:
string mailto:str1=@%22string one
two";
上面的**編譯後生成的il指令轉換為源**就是:
string str1="string one\r\ntwo";
關於C 的續行符
眾所周知,如果你需要在 中定義乙個較長的字串,首先我會想把它們放在多行上 因為放在一行上會不便於閱讀 這樣 即美觀又便於閱讀 這就需要續行符了。在c c 中續行符可以用 或二字 括起來的字串來表示,如 char str1 string one two 或char str2 string one tw...
c 中的續行符
有時候我們看 會遇到類似下面的 define nsd report error eseverity,epackage,lfunctionality,hr,msg,bassert 那麼,每句後面的斜槓是什麼作用?下面的解釋來自網際網路。斜槓有個正式的名稱叫做續行符,在普通 行後面加不加都一樣 vc是自...
C 的反斜槓「 」 續行符
系統規定,巨集定義的時候,代替的語句很長或者是個語句塊甚至函式的時候,就需要用到這個反斜槓了!看下面 這玩意兒有個正式的名稱叫做續行符,在普通 行後面加不加都一樣 vc是自動判斷續行的 但是在巨集定義裡面就特別有用,因為巨集定義規定必須用一行完成 define somefun x,a,b if x ...