簡體   English   中英

C#餡餅標志

[英]C# strudel sign

在C#中編碼時,我錯誤地在if語句中的變量之前添加了一個結構符號(而不是感嘆號)。

bool b = false;
if (@b)
{

}

我很驚訝它成功編譯沒有任何錯誤。

我想知道:上面代碼的含義是什么?

如果您想使用關鍵字, @可用於“轉義”標識符。 例如:

int @class = 10;

當然,使用關鍵字作為標識符通常是一個壞主意,但如果您使用的是正好使用它們的類庫,則很難避免。 對於你想要有效地擁有this引用的情況,有時候使用“@this”也是有用的,但無論出於什么原因你都不能使用它。 (這些很少,而且很遠,但我已經看過幾次了,至少值得知道。)

喬恩的答案總結了一下。 必須使用這種轉義技術的示例是在ASP.NET MVC中將匿名類型的HTML屬性指定為輔助方法。

Html.ActionLink("text", "action", "controller",
    new { @class = "some-css-class" }, null);

在編寫使用JSON編碼通過HTTP發布的匿名類型時,我也遇到了這種情況,您無法修改遠程API。

“餡餅”的+1也是:)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM