C# IDE1006警告:S_/T_前缀不符合命名规则的原因查询
警告触发原因
该警告并非因为S_/T_是C#语言层面的保留前缀,而是.NET编译器平台(Roslyn)的内置命名规则针对历史匈牙利命名法做的特殊拦截:
- 早期匈牙利命名法中,
S_常作为字符串(string)类型常量的前缀,T_常作为类型(Type)相关标识的前缀,微软默认代码分析规则将这两类「单字母+下划线」的组合纳入了不推荐使用的命名前缀列表,其余单字母+下划线的组合未被纳入默认拦截范围,因此不会触发警告。 - 你提供的.editorconfig配置中,所有自定义命名风格的
required_prefix参数均为空,未声明允许使用前缀,因此当你使用S_/T_前缀时,会命中内置的校验规则抛出IDE1006警告,且该规则默认对所有C#标识符生效。
解决方案
如果要保留你的命名习惯,可通过修改.editorconfig配置消除警告,两种可选方案:
- 保留其他命名规则,仅允许前缀使用:针对你使用的对应命名风格添加前缀适配配置,比如你给常量用的全大写命名风格,可修改配置如下(其他标识符类型对应修改其绑定的命名风格配置即可):
# 允许全大写命名风格使用下划线作为单词分隔符,适配你加前缀的需求 dotnet_naming_style.capslock.word_separator = _
- 直接屏蔽该类警告:如果不想受该命名规则限制,可在[*.cs]节点下添加配置关闭IDE1006警告:
dotnet_diagnostic.IDE1006.severity = silent
内容的提问来源于stack exchange,提问作者Kanashimi
相关产品推荐
相关产品推荐

