如何摆脱Visual Studio中的命名规则违规消息?

时间:2016-11-29 01:07:14

标签: c# asp.net visual-studio-2017

我刚刚安装了Visual Studio 2017.当我打开现有网站时,我会收到各种各样的警告信息,例如:

  

IDE1006命名规则违规:这些字必须以大写字母开头   字符:swe_calc

在代码中定义为:

[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的一个例子:

  

IDE1006命名规则违规:这些字必须以大写字母开头   characters:ddlMonth_SelectedIndexChanged

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

9 个答案:

答案 0 :(得分:104)

如果你去

,它是一个新的可配置功能
  

选项→文本编辑器→您的语言(我做过C#)→代码样式→命名

在那里我去了管理样式添加驼峰案例(它在那里,但你需要将它添加到你的可选择):转到" +"签名,然后相应地添加您的规则。

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

例如,我只使用camel Case作为私有方法。所以我选择私人方法,并要求我创建的新款#34;驼峰Case"并将其设置为Severity Suggestion(我也将其提升到顶部)。

内置的所有"建议"你也可以关闭消息。

答案 1 :(得分:19)

如果你需要摆脱这些消息,你也可以压制它们。

enter image description here

答案 2 :(得分:10)

您可以重命名该方法,并使用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);

答案 3 :(得分:10)

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

#pragma warning disable IDE1006

// the code with the warning

#pragma warning restore IDE1006

答案 4 :(得分:1)

如果将鼠标悬停在违反命名规则的地方,则可以使用Alt + Enter来显示该语言的命名样式。您还可以使用工具->选项->文本编辑器-> {语言}->代码样式->命名。

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

Sample C# Naming Styles Settings

答案 5 :(得分:0)

如果要在方法中省略或取消警告消息,可以使用命名空间 System.Diagnostics.CodeAnalysis 中的 SuppressMessage

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

Justification 属性是可选的,但值得花点时间写一个理由,让您的团队知道代码已修改并且可以。

答案 6 :(得分:0)

可以使用.editorconfig设置文件,使用常规VS2017和VS2019,使用命名规则:https://docs.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

答案 7 :(得分:0)

禁用规则。 右键单击错误消息,然后选择严重性为无

答案 8 :(得分:0)

此规则断言,字段必须是私有的。

您可以通过在字段后添加{get; set;}来将其转换为属性

这为我消除了错误。