C# 轉義字符


https://blog.csdn.net/qq_38819293/article/details/88570586

編程中很多細節問題我們都要十分的注意,要不一個小小的字母錯誤就能引起程序的無法運行。

C#中轉義字符分2中,一種是\,一種是@。

@符號在C#中有兩個作用
作用1、在字符串的前面加@表示取消字符串中的轉義
例如 string path=@"d:\root\subdir";
作用2、如果用戶定義的對象名和系統關鍵字沖突,可以在變量前面加入@
例如 string @Class="this is a test";

一些字母前加「\」來表示常見的那些不能顯示的 ASCII 字符,如 \0、\t、\n 等,就稱為轉義字符,因為后面的字符,都不是它本來的 ASCII 字符意思了。

特征
是一種特殊的字符常量;

以反斜線「\」開頭,后面跟一個或幾個字符;

用來表示那些用一般字符不便於表示的控制代碼;

用可以看見的字符表示那不可以看見的字符, 如「\n」表示換行;

作用是消除緊隨其后的字符的原有含義,不同於字符原有的意義,用一些普通字符的組合來代替一些特殊字符,由於其組合改變了原來字符表示的含義,故稱“轉義”字符。


常用轉義字符及含義
符號    含義
\n    換行
\r    回車
\t    制表符
\f    換頁符
\b    退格
\a    響鈴
\e    escape(ASCII中的escape 字符)
\007    任何八進制值(這里是,007=bell(響鈴))
\x7f    任何十六進制值(這里是,007=bell)
\cC    一個控制符(這里是:Ctrl+c)
\    反斜線
"    雙引號
\l    下個字符小寫
\L    接着的字符均小寫直到\E
\u    下個字符大寫
\U    接着的字符均大寫直到\E
\Q    在 non-word 字符前加上(自動加轉義符號),直到\E
\E    結束\L,\E和\Q

\0   空格


拓展知識

一 字符串中的用法

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# 中作為保留關鍵字,但是在其他語言中也許不是。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM