如何在 VisualStudio 中消除命名规则违规消息?

我刚刚安装了 Visual Studio 2017。当我打开一个现有的网站,我会收到各种各样的警告信息,比如下面这条:

违反命名规则: 这些单词必须以大写字母开头 字符: swe _ calc

In the code it is defined as:

[System.Runtime.InteropServices.DllImport("swedll32.dll")]
public static extern Int32 swe_calc(double tjd, int ipl, Int32 iflag, IntPtr xx, IntPtr serr);

我的 ASP.Net 控件也会出现这种情况,下面是一个 DropDownList 的例子:

违反命名规则: 这些单词必须以大写字母开头 字符: ddlMonth _ SelectedIndexChanged

如何在 VisualStudio 下消除这些类型的警告?

98250 次浏览

您可以重命名该方法并将名称添加到具有 EntryPoint属性的属性中。

[System.Runtime.InteropServices.DllImport("swedll32.dll", EntryPoint = "swe_calc")]
public static extern Int32 SweCalc(double tjd, int ipl, Int32 iflag, IntPtr xx, IntPtr serr);

这是一个新的可配置特性

工具→选项→文本编辑器→你的语言(我是 C #)→代码样式→命名

在那里我去管理样式添加骆驼情况(它在那里,但你需要添加到您的可选) : 去“ +”标志,然后相应地添加您的规则。

重要 : 关闭您的解决方案并重新打开它以使更改生效。

例如,我只对私有方法使用驼峰 Case。所以我选择了私有方法,并要求样式的新的我创建的“骆驼情况”,并设置为严重性建议(我也提升到顶部)。

内置的都是“建议”太,所以你也可以只是关闭消息。

如果你需要删除这些信息,你也可以直接删除它们。

enter image description here

如果将鼠标悬停在命名规则冲突上,则可以使用 Alt + Enter 调出该语言的命名样式。也可以使用 Tools-> Options-> Text Editor-> { language }-> Code Style-> Naming。

对于 Method 上的 camelCase 规则,可以添加一个新规则并将其设置为 CamelCase。当您关闭代码文件并再次打开它时,您不应该再看到这个警告。不确定为什么这不是默认选项,但是在我的例子中不是(使用 Visual Code 15.8)。我必须编辑样式以符合我们公司的标准。

示例 C # 命名样式设置

如果只想在某些文件或区域中禁止显示,可以使用以下方法:

#pragma warning disable IDE1006


// the code with the warning


#pragma warning restore IDE1006

如果希望省略或取消方法中的警告消息,可以使用名称空间 System.Diagnostics.CodeAnalysis中的 禁止信息:

[SuppressMessage("Microsoft.Design", "IDE1006", Justification = "Rule violation aceppted due blah blah..")]

The 正当理由 property is optional, but it's worth spending a moment writing a reason, to let your team know that the code is revised and is ok.

这可以使用普通的 VS2017和 VS2019使用 .editorconfig设置文件,使用命名规则: https://learn.microsoft.com/en-us/visualstudio/ide/editorconfig-code-style-settings-reference来完成

这个文件可以手工创建,或者在 VS2019中,你可以让 Visual Studio 通过你的首选项(例如,在配置你的首选项之后,就像在 https://stackoverflow.com/a/41131563/131701中一样)为你创建它,通过从设置按钮中点击生成编辑器配置文件。

generate editor config file from settings button

例如,以下规则集将为所有非公共方法启用 camelCase,并保留 VS 附带的其他默认命名规则。

#### Naming styles ####


# Naming rules


dotnet_naming_rule.interface_should_be_begins_with_i.severity = suggestion
dotnet_naming_rule.interface_should_be_begins_with_i.symbols = interface
dotnet_naming_rule.interface_should_be_begins_with_i.style = begins_with_i


dotnet_naming_rule.types_should_be_pascal_case.severity = suggestion
dotnet_naming_rule.types_should_be_pascal_case.symbols = types
dotnet_naming_rule.types_should_be_pascal_case.style = pascal_case


dotnet_naming_rule.private_method_should_be_camelcasestyle.severity = suggestion
dotnet_naming_rule.private_method_should_be_camelcasestyle.symbols = private_method
dotnet_naming_rule.private_method_should_be_camelcasestyle.style = camelcasestyle


dotnet_naming_rule.non_field_members_should_be_pascal_case.severity = suggestion
dotnet_naming_rule.non_field_members_should_be_pascal_case.symbols = non_field_members
dotnet_naming_rule.non_field_members_should_be_pascal_case.style = pascal_case


# Symbol specifications


dotnet_naming_symbols.interface.applicable_kinds = interface
dotnet_naming_symbols.interface.applicable_accessibilities = public, internal, private, protected, protected_internal
dotnet_naming_symbols.interface.required_modifiers =


dotnet_naming_symbols.private_method.applicable_kinds = method
dotnet_naming_symbols.private_method.applicable_accessibilities = private, protected, internal, protected_internal
dotnet_naming_symbols.private_method.required_modifiers =


dotnet_naming_symbols.types.applicable_kinds = class, struct, interface, enum
dotnet_naming_symbols.types.applicable_accessibilities = public, internal, private, protected, protected_internal
dotnet_naming_symbols.types.required_modifiers =


dotnet_naming_symbols.non_field_members.applicable_kinds = property, event, method
dotnet_naming_symbols.non_field_members.applicable_accessibilities = public, internal, private, protected, protected_internal
dotnet_naming_symbols.non_field_members.required_modifiers =


# Naming styles


dotnet_naming_style.pascal_case.required_prefix =
dotnet_naming_style.pascal_case.required_suffix =
dotnet_naming_style.pascal_case.word_separator =
dotnet_naming_style.pascal_case.capitalization = pascal_case


dotnet_naming_style.begins_with_i.required_prefix = I
dotnet_naming_style.begins_with_i.required_suffix =
dotnet_naming_style.begins_with_i.word_separator =
dotnet_naming_style.begins_with_i.capitalization = pascal_case


dotnet_naming_style.camelcasestyle.required_prefix =
dotnet_naming_style.camelcasestyle.required_suffix =
dotnet_naming_style.camelcasestyle.word_separator =
dotnet_naming_style.camelcasestyle.capitalization = camel_case

disable the rule. 右键单击错误消息并选择严重性为无

该规则声明 田野必须是私有的。

可以通过在字段后面添加{ get; set; }将其转换为 财产

这为我消除了错误。