如何用EditorConfig强制单行if/else语句不使用大括号?
能否用EditorConfig强制执行单行if/else无大括号的代码风格?
可以实现,结合EditorConfig配置与Visual Studio 2022内置的Roslyn代码分析/格式化规则就能达成你需要的代码风格要求。
具体配置步骤
在项目根目录的
.editorconfig文件中添加以下C#专属规则:# 单行语句块自动移除大括号 csharp_prefer_braces = false:when_on_single_line # 多行语句块强制添加大括号 csharp_prefer_braces = true:when_multiline这个配置会让格式化工具自动处理:当if/else分支仅含单行代码时移除大括号,分支包含多行代码时强制保留大括号,完全匹配你给出的示例风格。
可选:启用代码警告提示,提前发现不符合规则的代码
在.editorconfig中追加以下配置,将对应的规则设为警告级别,编写代码时编辑器会实时提示:# 提示移除不必要的大括号 dotnet_diagnostic.IDE0005.severity = warning # 提示为多行分支添加必要的大括号 dotnet_diagnostic.IDE0011.severity = warning
效果验证
- 单行分支带大括号的代码,执行格式化(Ctrl+K,Ctrl+D)后会自动移除大括号:
原代码:
格式化后:if (cond) { DoStuff(); }if (cond) DoStuff(); - 多行分支未加括号的代码,格式化后会自动添加大括号:
原代码:
格式化后:if (cond) DoStuff(); DoAnotherThing();if (cond) { DoStuff(); DoAnotherThing(); }
内容的提问来源于stack exchange,提问作者Mads Obitsø Thomsen
相关产品推荐
相关产品推荐

