В C# штрудель знак
при кодировании на C# я по ошибке добавил знак штруделя перед переменной в операторе if (вместо восклицательного знака).
bool b = false;
if (@b)
{
}
Я удивлен, что он успешно скомпилирован без каких-либо ошибок.
интересно: что означает приведенный выше код?
2 ответов
@
может использоваться для "escape" идентификаторов, если вы хотите использовать ключевые слова. Например:
int @class = 10;
конечно, обычно не рекомендуется использовать ключевые слова в качестве идентификаторов, но если вы используете библиотеку классов, которая их использует, это может быть трудно избежать. Иногда также может быть полезно использовать "@this " для ситуаций, когда вы хотите эффективно есть this
ссылка, но по какой-то причине вы не можете ее использовать. (Это довольно мало, и далеко между, Но я видел это пару раз, и это стоит, по крайней мере, знать.)
ответ Джона подводит итог. Примером того, когда вы должны использовать этот метод экранирования, является указание атрибутов HTML в анонимных типах для вспомогательных методов в ASP.NET MVC.
Html.ActionLink("text", "action", "controller",
new { @class = "some-css-class" }, null);
Я также ударил это при составлении анонимных типов для публикации через HTTP с помощью кодировки JSON, где вы не можете изменить удаленный API.
+1 для 'штрудель' тоже :)