2010-03-02 154 views
15

可能重複:
when to use @ in c# ?什麼是 「@」 是指在C#

F.E. string sqlSelect = @"SELECT * FROM Sales".

+2

複製 - http://stackoverflow.com/questions/1057926/when-to-use-in-c – ChrisF 2010-03-02 09:02:28

+4

有趣的事實:你也可以使用字面前綴來區分標識符和關鍵字。 'Int32 new;'是無效的,但是'Int32 @new;'不是。 – HackedByChinese 2010-03-02 09:03:49

回答

26

它意味着將以下字符串解釋爲文字。意思是,字符串中的\實際上是輸出中的"\",而不是必須將"\\"表示爲文字字符

+2

讓你的斜槓混淆起來。否則,我最喜歡你的答案。 – 2010-03-02 09:00:29

+0

@Spencer Ruport:無法理解,怎麼混淆了?完全是 – Sarfraz 2010-03-02 09:01:52

+0

。應該是反斜槓,不是一個簡單的斜線 – 2010-03-02 09:10:51

0

它允許你在其中有一個帶\分隔符的字符串。

@「C:\ A \ b \ c \ d \ e \ f」是合法的。

4

這意味着沒有必要在這樣的字符串中轉義字符。

所以,如果你想要寫c中的路徑:\ Windows下,你可以把它寫成

string path="c:\\Windows"; //注意逃脫 '\'

OR

string [email protected]"c:\Windows"; // '\'不需要轉義

+0

我看起來很辛苦,但在第一個例子中我看不到雙倍\ ... – Rory 2010-03-02 09:05:37

+0

已修復。似乎有一些格式問題。 – logicnp 2010-03-02 09:08:44

0

用於字符串文字。它標誌着引號(「)標記值內的字符串沒有在該字符串應用任何解釋的符號

2

逐字字符串開始@ ,並且還用雙 引號。例如:

@"good morning" // a string literal 

從缺口看一下最後幾行上面的例子中獲取更多信息。 http://msdn.microsoft.com/en-us/library/362314fe.aspx

+0

也https://msdn.microsoft.com/en-us/library/ms228362.aspx#Anchor_3 – Lu55 2016-06-22 14:17:28

18

字符串之前,它允許不同的字符串格式化規則。您不能使用反斜槓來指定特殊符號,並且「」(雙引號變爲引號)。我覺得這種格式的正則表達式

Console.WriteLine(@"\n""\/a"); // outputs \n"\/a 
Console.WriteLine("\\n\"\"\\/a"); // outputs \n"\/a 

你可能也看到了@符號變量之前是非常有用的。在這種情況下,它允許使用特殊的C#關鍵字作爲變量。

實施例:

var @switch = 1; 
var @if = "test"; 
1

在C和C++,串有一些特殊的字符稱爲 「轉義字符」。例如「\」,「&」和它本身就是一個轉義字符!

在非常正常的方式,你打印一份聲明中像

南希說的Hello World! &笑着

你必須設置你的字符串旁邊似

string str = "Nancy said Hello World! \& smiled."; 

但人們在微軟的C#編譯器提出了新的很酷的功能,因此您可以通過之前的任何添加@逃脫的處理轉義字符頭痛字符串,編譯器將自己處理所有轉義字符。對於最後一個例子,你可以在C#中有這樣的未來一樣:

string str = @"Nancy said Hello World! & smiled."; 
+1

同意分隔,但我不相信&是一個角色,需要在c#中分隔 – MPritchard 2010-03-02 10:29:19