c# @ 停止字符串中的轉義字符,讓字符串內的轉義字符當正常字符輸入。
因此,如果你需要類似“所見所得”效果的賦值,逐字字符串賦值方式會是你的首選!
此外,需要注意的是,當使用符號 "@" 為字符串賦值時,被賦值的所有字符將不需要經過轉義——只有雙引號這個本身作為界限的字符需要經過轉義,此時它的轉義輸入方法是兩個放在一起的雙引號:""
在以這種方式給變量賦值時,也只有這唯一一個轉義是合法的。如果希望諸如換行、制表符此類字符在字符串體現出來,也可以直接將帶有換行與制表符的字面量字符串賦給字符串量;不過這樣,就不能在換行前的前一行寫注釋或其他語句,否則這些語句將被當作字符串值的一部分。
double n = 9.3;
Console.WriteLine("now test \' it \' look like{0}", 77);//now test ' it " look like77f Console.WriteLine(@"now test \' it \' look like{0}", 232); //now test \' it \' look like232 Console.WriteLine($@"now test\' it \' {n:##.0\%}"); // now test\' it \' 9.3% 內插字符串內可以使用轉義字符 ,{n:##.0\%}將字符解釋為文本字符而不是格式字符
c# $ 內插字符串的結構
要在內插字符串生成的文本中包含大括號 "{" 或 "}",請使用兩個大括號,即 "{{" 或 "}}"。 有關詳細信息,請參閱轉義大括號。
因為冒號(“:”)在內插表達式項中具有特殊含義,為了在內插表達式中使用條件運算符,請將表達式放在括號內。
以下示例演示如何將大括號含入結果字符串中,以及如何在內插表達式中使用條件運算符:
string name = "Horace"; int age = 34; Console.WriteLine($"He asked, \"Is your name {name}?\", but didn't wait for a reply :-{{"); Console.WriteLine($"{name} is {age} year{(age == 1 ? "" : "s")} old.");
// Expected output is: // He asked, "Is your name Horace?", but didn't wait for a reply :-{ // Horace is 34 years old.
從 C# 8.0 開始,可以按任意順序使用 $
和 @
標記:$@"..."
和 @$"..."
均為有效的內插逐字字符串。 在早期 C# 版本中,$
標記必須出現在 @
標記之前。