Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/visual-studio/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/variables/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Visual studio CA1707常量名称警告_Visual Studio_Code Analysis_Fxcop_Roslyn Code Analysis - Fatal编程技术网

Visual studio CA1707常量名称警告

Visual studio CA1707常量名称警告,visual-studio,code-analysis,fxcop,roslyn-code-analysis,Visual Studio,Code Analysis,Fxcop,Roslyn Code Analysis,为什么微软一直用常数(比如WM_SOMECONSTANT)来记录代码,但VisualStudio中的代码分析报告了CA1707警告 我们应该为解决方案抑制所有这些警告吗? 我们应该重命名所有常量吗?看起来您在引用Windows中的本机函数。这里的建议是将对该函数的调用(以及它所需的任何枚举和常量)放在一个单独的NativeMethods类中,该类有自己的.cs文件。这样就很容易在整个文件的代码中抑制CA1707 建议不要在非本机代码中散布所有这些常量,您能否创建一个简单的包装器,作为丑陋的本机w

为什么微软一直用常数(比如WM_SOMECONSTANT)来记录代码,但VisualStudio中的代码分析报告了CA1707警告

我们应该为解决方案抑制所有这些警告吗?
我们应该重命名所有常量吗?

看起来您在引用Windows中的本机函数。这里的建议是将对该函数的调用(以及它所需的任何枚举和常量)放在一个单独的
NativeMethods
类中,该类有自己的
.cs
文件。这样就很容易在整个文件的代码中抑制
CA1707

建议不要在非本机代码中散布所有这些常量,您能否创建一个简单的包装器,作为丑陋的本机win32 API和您希望人们如何在您的C#应用程序中使用它之间的桥梁?这样,代码的其余部分就可以幸福地不知道它了

这里有一些技巧可能会有所帮助:

  • 使用新的
    .editorconfig
    样式规则集文件时,您可以:

  • 可以使用编译器指令抑制整个文件的内联:

    #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
    
  • 您可以将本机方法移动到单独的类库中,并在那里完全禁用该规则

#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