亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

字符串插值 - 大括號內的 @ 符號有什么作用?

字符串插值 - 大括號內的 @ 符號有什么作用?

C#
慕少森 2021-12-25 16:24:18
考慮:string newline = "\r\n";Console.WriteLine($"Hello without at{newline}how are you?");Console.WriteLine($"Hello with at{@newline}how are you?");兩行的輸出是相同的。換行符始終打印為換行符。Hello without athow are you?Hello with athow are you?那么我什么時候需要花括號內的at 符號呢?
查看完整描述

2 回答

?
FFIVE

TA貢獻1797條經驗 獲得超6個贊

$"Hello { myValue }"是 C#6 中引入的內插字符串。在您的情況下,這相當于調用String.Format("Hello {0}", myValue).

@當您的變量與關鍵字同名時需要逐字 ( ) ,而據我所知,newline這不是。但是,以下會導致編譯器錯誤:

String.Format("Hello {0}", if)

雖然這不會:

String.Format("Hello {0}", @if)

這里逐字告訴編譯器這if是一個變量的名稱,而不是if-關鍵字。

所以你不需要逐字逐句,因為newline不是關鍵字?;蛘邠Q句話說,您的代碼等效于:

Console.WriteLine("Hello with at{0}how are you?", @newline);

這是逐字逐句的有效(即使是多余的)用法。

有關更多信息,請參閱有關 string-interpolation文檔。


查看完整回答
反對 回復 2021-12-25
?
哈士奇WWW

TA貢獻1799條經驗 獲得超6個贊

這是一個多余的逐字前綴。從C# 規范

前綴“@”允許使用關鍵字作為標識符,這在與其他編程語言交互時非常有用。字符@ 實際上不是標識符的一部分,因此標識符在其他語言中可能被視為普通標識符,沒有前綴。帶有@ 前綴的標識符稱為逐字標識符。允許對不是關鍵字的標識符使用 @ 前綴,但強烈建議不要作為樣式問題。

一個用例是,如果您想編寫這樣的函數:

private void print(string @string) => Console.WriteLine(@string);

通常您無法命名標識符,string因為它是一個保留關鍵字。該@前綴允許你這樣做。


查看完整回答
反對 回復 2021-12-25
  • 2 回答
  • 0 關注
  • 217 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號