轉義字符
回答
這是@
字符:@"c:\path"
它被稱爲一個verbatim string literal。
在C#中,您可以使用the @ sign to make a verbatim string literal。
所有,但\」被忽略
var literal = @"C:\Test\Test.txt
Newlines are also parsed";
@
string sLiteral = @"This will be formatted. Even including
return characters,
and spaces at the start of lines";
它被稱爲verbatim string literal,並使用@前綴
沒有前綴,它仍然是一個字符串。 - 它是一個常規字符串文字。
(有些人誤以爲術語「字符串文字」只適用於逐字字符串,但比這更普遍)
逐字字符串是有用的:
- 多行字符串
- 字符串這自然包含反斜槓(例如作爲Windows路徑和正則表達式)
請注意,此只有在編譯時有所不同。換句話說,這兩個語句是完全等效:
string x = "foo\\bar"; // Regular string literal
string x = @"foo\bar"; // Verbatim string literal
逐字字符串以同樣的方式作爲常規字符串文字還是實習,還是指的System.String
等
情況下,從第2.4節的C# 4.0 specification .4.5:
規則字符串由包含在雙引號零個或多個字符,如「你好」,並且可以包括簡單的轉義序列(例如作爲製表符的\ t),以及十六進制和Unicode轉義序列。
逐字字符串文字由@後跟雙引號字符,零個或多個字符和一個閉合的雙引號字符組成。一個簡單的例子是@「你好」。在逐字字符串文字中,分隔符之間的字符是逐字解釋的,唯一的例外是引號轉義序列。特別是,簡單的轉義序列,以及十六進制和Unicode轉義序列不會在逐字字符串文字中處理。逐字字符串文字可能跨越多行。
注意@也可以用來作爲前綴,以使您可以使用關鍵字作爲標識符:
int class = 10; // Invalid
int @class = 10; // Valid
這是很少有用,但有時需要,如果你有使用特定標識符。 (該class
關鍵字可以是用於在ASP.NET MVC匿名類型屬性是有用的,例如。)
如果我有一個字符串作爲這樣:C:\ monkey.txt
我將不得不逃脫斜槓是這樣的:
string s = "c:\\monkey.txt"
通知雙斜槓
或者你可以使用「@」符號,表示該字符串是從字面上理解:
string s = @"c:\monkey.txt"
- 1. 轉義字符
- 2. 轉義字符
- 3. 轉義字符,
- 4. 轉義字符
- 5. 轉義字符
- 6. 將unicode轉義字符轉義爲普通字符串(沒有轉義字符)
- 7. 字符串轉義字符
- 8. 轉義字符XML轉換
- 9. 字符串轉義
- 10. Kivy轉義字符
- 11. XSLT轉義字符
- 12. Javascript轉義字符
- 13. SOQL轉義字符
- 14. 轉義HTML字符
- 15. XML轉義字符
- 16. HTML轉義字符
- 17. 「Rechapturing」轉義字符
- 18. .NET轉義字符?
- 19. Dust.js轉義字符
- 20. 轉義NSURL字符
- 21. 轉義UNIX字符
- 22. BasicNameValuePair字符轉義
- 23. JSON轉義字符
- 24. JavaScriptSerializer轉義字符
- 25. 轉義字符 - \ xFF
- 26. PHP轉義字符
- 27. 轉義字符pypyodbc
- 28. SQL轉義字符
- 29. 製表符轉義字符?
- 30. 字符串文字/轉義
謝謝你們。我給每個人點數,但我必須選擇最好的答案,這是第一個答覆。再次感謝你的幫助。 – Yves 2010-09-30 16:09:56
在這種情況下,@Kombucha,一定要將其標記爲接受的答案。 :) – 2010-09-30 16:15:15
我做了:)我需要等8分鐘才能檢查複選標記。我只是做:) – Yves 2010-09-30 16:17:45