我刚刚安装了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下消除这些类型的警告?
答案 0 :(得分:104)
如果你去
,它是一个新的可配置功能选项→文本编辑器→您的语言(我做过C#)→代码样式→命名
在那里我去了管理样式添加驼峰案例(它在那里,但你需要将它添加到你的可选择):转到" +"签名,然后相应地添加您的规则。
重要:关闭解决方案并重新打开,以使更改生效。
例如,我只使用camel Case作为私有方法。所以我选择私人方法,并要求我创建的新款#34;驼峰Case"并将其设置为Severity Suggestion(我也将其提升到顶部)。
内置的所有"建议"你也可以关闭消息。
答案 1 :(得分:19)
答案 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)。我必须编辑样式以符合我们公司的标准。
答案 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配置了首选项之后)从设置按钮。
例如,以下规则集将为所有非公共方法启用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;}来将其转换为属性。
这为我消除了错误。