[英]What's the meaning of “@” in C#
新學習者的快速問題,C#代碼中“@”的含義是什么?
例子:
ClientDataSource.Where = @"it.ClientID==1";
cont.Notes = @"";
Response.Redirect(@"~/Default.aspx");
謝謝!
@"...."
表示逐字字符串文字 。 C#不處理字符串中的任何轉義字符,除了""
(允許在字符串中包含"
字符"
)。
這使得處理字符串變得更容易和更清晰,否則這些字符串需要有一堆逃逸才能正確處理。 例如,文件/文件夾路徑。
string filePathRegular = "C:\\Windows\\foo\\bar.txt";
string filePathVerbatim = @"C:\Windows\foo\bar.txt";
它在編寫正則表達式時也非常有用,可能還有很多其他的東西。
值得注意的是,C#還使用@
字符作為前綴,以允許保留字用作標識符。 例如,ASP.Net MVC中的Html Helpers可以為其創建的標記采用包含HTML屬性的匿名對象。 所以你可能會看到這樣的代碼:
<%= Html.LabelFor(m => m.Foo, new { @class = "some-css-class" } ) %>
這里需要@
,因為class
是保留字。
逐字字符串文字允許您將文本放在字符串中,否則編譯器將對其進行不同的處理。 例如,如果我要編寫文件路徑並將其分配給變量,我可能會這樣做:
myString = "C:\\Temp\\Test.txt";
我必須有雙斜杠的原因是因為我正在逃避斜線,所以它不被視為命令。 如果我使用逐字字符串文字符號,我的代碼可能如下所示:
myString = @"C:\Temp\Test.txt";
在處理特殊字符時,可以更輕松地編寫字符串。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.