編程中很多細節問題我們都要十分的注意,要不一個小小的字母錯誤就能引起程序的無法運行。
C#中轉義字符分2中,一種是\,一種是@。
@符號在C#中有兩個作用
作用1、在字符串的前面加@表示取消字符串中的轉義
例如 string path=@"d:\root\subdir";
作用2、如果用戶定義的對象名和系統關鍵字沖突,可以在變量前面加入@
例如 string @Class="this is a test";
轉義字符 字符名稱
\' 單引號
\" 雙引號
\\ 反斜杠
\0 空字符
\a 警報符
\b 退格
\f 換頁
\n 換行
\r 回車
\t 水平制表
\v 垂直制表
一 字符串中的用法
Verbatim字符串
對於verbatim字符串,編譯 器會嚴格按照原樣對其進行解釋。也就是說,即使這個字符串跨越多行,或是包含轉義字符,編譯器也將不予理會,即這些格式和轉義符將按照原樣輸出。唯一例外的是引號,編譯器必須將其轉義,因為只有這樣才能確定字符串的邊界。
Verbatim字符串的定義語法為以@符號開始,后面緊跟包含在引號中的字符串。例如:
string
sample =
@"Hello"
;
string
sample =
@"Hello\tworld"
;
//生成Hello\tworld
以下是一個實用的示例:
string
sample=
@"C:\My Documents\sample.txt"
;
//結果為:C:\My Documents\sample.txt,如同語句:string sample="C:\\My Documents\\sample.txt"
若想在Verbatim字符串內使用引號,必須使用附加的引號組將其轉義。例如,生成字符串
"Hi"
的代碼如下:
String s=
@" "
"Hi"
""
;
//注意:兩邊都有3個引號
上述代碼將生成下列字符串:
"Hi"
字符@表示,其后的字符串是個“逐字字符串”(verbatim string)。
@只能對字符串常量作用。
1.用於文件路徑
以下是引用片段:
string s_FilePath ="C:\\Program Files\\Microsoft.NET\\test.txt";
相當於
以下是引用片段:
string s_FilePath =@"C:\Program Files\Microsoft.NET\test.txt";
2.用@表示的字符串能夠跨越數行。用於在CS中寫JS或SQL代碼比較方便。
以下是引用片段:
string s_MultiRows = @"Line1
Line2
Line3";
string s_JavaScript = @"
";
二 標識符中的用法
在 C# 規范中, @ 可以作為標識符(類名、變量名、方法名等)的第一個字符,以允許C# 中保留關鍵字作為自己定義的標識符。
如
以下是引用片段:
class @class
{
public static void @static(bool @bool) {
if (@bool)
System.Console.WriteLine("true");
else
System.Console.WriteLine("false");
}
}
class Class1
{
static void M() {
clu0061ss.stu0061tic(true);
}
}
注意,@ 雖然出現在標識符中,但不作為標識符本身的一部分。
因此,以上示例,定義了一個名為 class 的類,並包含一個名為 static 的方法,以及一個參數名為了 bool 的形參。
這樣,對於跨語言的移植帶來了便利。因為,某個單詞在 C# 中作為保留關鍵字,但是在其他語言中也許不是。