Lambda表达式中的'@'代表什么意思?

3

可能重复:
在C#变量名前加@符号有什么作用?

我正在尝试学习C# lambda表达式。当我搜索示例时,我看到了下面的代码:

Where(@t => string.Compare(@t.Code, argument.Code, StringComparison.CurrentCultureIgnoreCase) == 0)

我想知道在 t 前面的 '@' 符号是什么意思?


2
这是一种变量命名的方式。在C#中,将“@”放在变量名称前面只是一种命名约定。 - Philipp Aumayr
2
换句话说,这种情况下不需要且令人困惑。 - Oded
这是一个奇怪的选择,因为据我所知,在任何情况下,'t' 都不是关键字... - Tharwen
@Tharwen - 看起来Resharper有时会这样做 https://dev59.com/Hmox5IYBdhLWcg3wSCfk - keyboardP
这只是一种允许将保留关键字声明为变量的方法。void Foo(int @string) - Parimal Raj
1个回答

5

没有什么不同寻常的。如果变量是关键字,您可以使用@作为转义符来添加变量名称前缀。

例如,您也可以这样做:'var @class = 5'。通常情况下,由于class是关键字,您无法编译,但是添加@前缀允许您将其用作变量。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接