提问人:Federico Bianchi 提问时间:9/3/2020 最后编辑:jessehouwingFederico Bianchi 更新时间:9/3/2020 访问量:1498
CA1707 常量名称警告
CA1707 warning on constants names
问:
为什么 Microsoft 一直使用常量记录代码,例如 WM_SOMECONSTANT但 Visual Studio 中的代码分析报告 CA1707 警告?
我们是否应该抑制所有这些警告以寻求解决方案? 我们应该重命名所有常量吗?
答:
1赞
jessehouwing
9/3/2020
#1
看起来您正在引用 Windows 中的本机函数。这里的建议是将对该函数(以及它所需的任何枚举和常量)的调用放在一个单独的类中,该类具有自己的文件。这样就很容易抑制整个文件的 in 代码。NativeMethods
.cs
CA1707
建议不要在非本机代码中散布所有这些常量,是否可以创建一个简单的包装器,作为丑陋的本机 win32 API 与你希望人们在 C# 应用中使用它的方式之间的桥梁?这样一来,代码的其余部分就可以幸福地保持不知情。
一些可能会有所帮助的技巧:
使用新的样式规则集文件时,可以为应用规则的文件指定命名约定:
.editorconfig
[*.{cs,vb}] dotnet_diagnostic.CA1707.severity = warning [NativeMethods.{cs,vb}] dotnet_diagnostic.CA1707.severity = none
您可以对整个文件使用编译器指令内联禁止显示:
#pragma warning disable CA1707 // Identifiers should not contain underscores public class Class1 { public string WM_ERSHSERHSEHRSER; } #pragma warning restore CA1707 // Identifiers should not contain underscores
您可以将本机方法移动到单独的类库中,并在那里完全禁用该规则。
评论