加深C# 中字串前加@符號理解以及使用~~

l_serein發表於2012-11-06

1、 用 @ 引起來的字串以 @ 開頭,並用雙引號引起來。例如: 

@"good morning" // a string literal 
用 @ 引起來的優點在於換碼序列“不”被處理,這樣就可以輕鬆寫出字串,例如一個完全限定的檔名: 

@"c:/Docs/Source/a.txt" // rather than "c://Docs//Source//a.txt" 
若要在一個用 @ 引起來的字串中包括一個雙引號,請使用兩對雙引號: 

@"""Ahoy!"" cried the captain." // "Ahoy!" cried the captain. 
@ 符號的另一種用法是使用碰巧成為 C# 關鍵字的被引用的 (/reference) 識別符號。有關更多資訊,請參見 2.4.2 識別符號。  

2、

先看程式碼(以下程式碼使用在C#,環境ASP.NET):

    protected void Page_Load(object sender, EventArgs e)
     {
         test1("/a");
         test1(@"/a");

         test2("/a");
         test2(@"/a");

         test3("/a");
         test3(@"/a");

         test4("/a");
         test4(@"/a");
     }

    //引數不帶@ 輸出不帶@
    public void test1(string str)
     {
         Response.Write("test1:[" + str+"]
");
     }

    //引數不帶@ 輸出帶@
    public void test2(string str)
     {
         Response.Write("test1:[" + @str + "]
");
     }
    
    //引數帶@ 輸出不帶@
    public void test3(string @str)
     {
         Response.Write("test1:[" + str + "]
");
     }

    //引數帶@ 輸出帶@
    public void test4(string @str)
     {
         Response.Write("test1:[" + @str + "]
");
    }

F5執行,猜猜什麼結果!!嘿嘿~~ 
以下公佈顯示結果:
test1:[ ]
test1:[/a]
test1:[ ]
test1:[/a]
test1:[ ]
test1:[/a]
test1:[ ]
test1:[/a]

o(∩_∩)o...哈哈。
可以發現無論你後來給不給字串加@符號,都不管用了,只有在字串產生的時候加@有效果!

相關文章