4

我在根目录中有一个适用于我所有 Visual Studio 项目的 .editorconfig 文件。它包含以下规则:

# Const field naming rules
dotnet_naming_symbols.const_fields.applicable_accessibilities = *
dotnet_naming_symbols.const_fields.required_modifiers = const
dotnet_naming_rule.const_fields.symbols = const_fields
dotnet_naming_rule.const_fields.style = all_upper
dotnet_naming_rule.const_fields.severity = warning

# Enum naming rules
dotnet_naming_symbols.enums.applicable_kinds = enum
dotnet_naming_rule.enums.symbols = enums
dotnet_naming_rule.enums.style = pascal_case
dotnet_naming_rule.enums.severity = warning

# Naming Styles
dotnet_naming_style.pascal_case.capitalization = pascal_case
dotnet_naming_style.all_upper.capitalization = all_upper

根据EditorConfig 文档

EditorConfig 文件从上到下读取,最接近的 EditorConfig 文件最后读取。匹配 EditorConfig 部分的属性按读取顺序应用,因此较近文件中的属性优先。

根据这个推理,我的enums规则应该“优先于”我的const_fields规则。但是,以下枚举声明继续给我一个警告:

public enum AggregationMode {
    Simultaneous,
    Sequential,
}

说:Warning IDE1006 Naming rule violation: These words cannot contain lower case characters

枚举值是否被编译器视为 const?我尝试在 VS 中关闭/重新打开我的代码文件,重新排序 .editorconfig 的 const/enum 部分,构建/重建我的解决方案,甚至重新启动 VS,但警告不会消失。我们欢迎所有的建议!

4

0 回答 0