2009-12-18 28 views
462

在C#中的逐字字符串字面值(@「foo」)中,反斜槓不被視爲轉義字符,因此「\」以獲得雙引號不起作用。是否有任何方法可以逐字取得雙引號?字符串字面我可以在逐字串字面值中使用雙引號嗎?

這可以理解不起作用:

string foo = @"this \"word\" is escaped"; 

回答

752

使用重複的雙引號

@"this ""word"" is escaped"; 

輸出:

this "word" is escaped 
+0

我試圖使用@ Html.Raw()和四引號打破我的字符串 – JoshYates1980 2014-09-26 20:35:30

+1

你可以使用它沒有字符串文字?它似乎像Html.Raw()會照顧,以確保它是一個字符串爲你... – Myles 2014-09-27 17:32:36

+0

它也可以與字符串插值結合使用:'$ @「this」「{wordVar}」「被轉義」; '。 – fdelia 2018-01-30 10:02:32

103

使用雙引號。

string foo = @"this ""word"" is escaped"; 
59

這應該有助於澄清任何問題,你可能有:c# literals

下面是從鏈接的內容的表:

enter image description here

90

對於添加一些更多的信息,你的榜樣會沒有@符號的工作(它可以防止用\轉義),這樣:

string foo = "this \"word\" is escaped!"; 

它將雙向工作,但我更喜歡雙引號樣式,因爲它更容易工作,例如,使用文件名(字符串中帶有大量\)。

1
string str = @"""Hi, "" I am programmer"; 

輸出 - 「嗨,」我是程序員

你可以參考'@' prefix before any string in C# .NET

+37

這個問題已經很老了,已經有了很高的評價接受答案:你應該嘗試回答真正需要答案的問題。 – kdt 2013-10-30 00:05:35

+22

您的意思是「嗨,我是程序員」? – hyde 2014-07-08 19:15:07

相關問題