C#代码分析不喜欢受保护的静态s_Foo(CA1709,CA1707)

时间:2009-04-27 12:16:41

标签: c# visual-studio-2008 naming-conventions code-analysis fxcop

我通常在m_字段前添加private,在s_成员之前添加static

使用类似

的代码
protected static readonly Random s_Random = new Random ();

我通过VS2008的代码分析得到以下警告:

  • CA1709:Microsoft.Naming:将成员名称为“Bar.s_Random”的's'的大小写更正为'S'。
  • CA1707:Microsoft.Naming:从成员名称“Bar.s_Random”中删除下划线。

如何解决此问题?我应该删除s_吗?或者为此警告添加全局抑制?

编辑:我的公司缺乏编码标准,所以我可以为我的代码定义它们。 (是的,我知道......)

如果您认为s_一般应该删除,我很高兴您能提供官方消息来源。

6 个答案:

答案 0 :(得分:10)

您没有遵循Microsoft的.NET命名约定,该约定告诉您不要在内容中添加任何内容。如果这确实是您想要的,请添加抑制。否则,请遵循指南,删除s_和其他类似的前缀。

来自Names of Type Members
“字段名称”部分:“不要为字段名称使用前缀。例如,不要使用g_或s_来区分静态字段和非静态字段。”

答案 1 :(得分:1)

  1. 卸载项目
  2. 右键单击已卸载的项目=>编辑csproj
  3. 将RunCodeAnalysis设置为false
  4. 保存并重新加载项目

答案 2 :(得分:0)

取决于你想要的东西。

如果您的公司政策是使用s_为静态成员添加前缀,那么您应该取消警告,甚至添加自己的规则。

否则,请将其修改为Microsoft的标准,并致电您的会员Random

答案 3 :(得分:0)

m_是命名的旧标准。较新的惯例不遵循匈牙利语。

答案 4 :(得分:0)

由您决定如何解决它。忽略它,并保持自己的命名约定,或遵循Microsoft标准。就个人而言,我不会为我的变量使用任何前缀(因此在这种情况下,这将是'随机'而不是's_Random')所以我会选择后者,但如果你对此非常满意,那么没有人强迫你改变。

答案 5 :(得分:0)

  • CA1709:受保护不是私密的,需要大写
  • CA1707:下划线不符合ms命名约定