繁体   English   中英

为什么 Rider 会在我的公共变量中添加“@”?

[英]Why does Rider add an “@” to my public variable?

我已经像这样声明了一个 class :

public class Cell : IEquatable<Cell>
{
    public int id { get; }
    public SetOfCells group;
}

每次我想使用group时,Rider 都会在之前添加和@ ,如下所示:

foreach (Cell cell in c1.@group) {
    /* blabla */
}

精度: c1.@groupc1.group有效。 这是为什么?

(如果你能告诉我正确的话谷歌找到我感兴趣的有价值的答案,因为我找不到一个:“ csharp property +"@"没有帮助......”)

group是 C# 中的关键字(对于 LINQ 组子句), @是 C#使用关键字作为标识符“逐字前缀” )(例如int @int = 3;

在这种情况下, @不是必需的:在 C# 的更高版本中添加了group作为关键字,因此 C# 编译器必须保持与现有代码的向后兼容,并在其他关键字(例如int不会)的情况下接受group允许:

var int = 3;    // won't compile
var group = 3;  // compiles

group是所谓的“上下文关键字”

我无法回答为什么Rider 在group前面添加@ 怀疑Rider 试图“安全行事”并在每次使用 C# 关键字作为标识符之前添加一个@ (正如您所发现的,它没有伤害)。

一个务实的解决方案是将您的成员重命名为Group (使用大写的G )。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM