【问题标题】:Field name does not start with underscore - sonar issue [duplicate]字段名称不以下划线开头 - 声纳问题 [重复]
【发布时间】:2014-01-20 09:16:35
【问题描述】:

我们遵循匈牙利符号来声明私有变量,如下所示。

private IRepository<Request> _requestRepo;

public RequestService(IRepository<Request> requestRepo)
{
    _requestRepo = requestRepo;
}

上面的代码显示了一个声纳问题,例如字段名称不以下划线开头。请告诉我如何声明私有变量以满足编码标准?

【问题讨论】:

标签: c# sonarqube


【解决方案1】:

请不要在 C# 中使用匈牙利符号,它已经非常非常过时了。使用Microsoft Coding Guidelines。整个 .NET 世界的设计都考虑到了这些问题,违背它会让你的代码像拇指一样突出。

也就是说,指南并没有明确规定私有字段的规则。通常使用下划线或camelCase。如果您使用 Microsoft Visual Studio,请使用代码分析功能(以前称为 FxCop)来获取提示,例如在这种情况下设置您的私有变量 readonly

您的错误信息没有任何意义。如果消息说您的字段名称​​不应以下划线开头,我建议按照 Microsoft 指南使用camelCase

【讨论】: