JetBrains Rider 如何配置代码格式化以保留单行方法的作用域格式
JetBrains Rider 如何配置代码格式化以保留单行方法的作用域格式
我太懂你这个困扰了!Rider自带的代码格式化功能有时候会“自作主张”把咱们写的简洁单行表达式体方法转成带大括号的完整方法,确实挺影响代码风格一致性的。别着急,咱们几步就能调整好设置解决这个问题:
- 先打开Rider的设置面板,最快的方式是用快捷键
Ctrl+Alt+S,也可以从顶部菜单栏点File → Settings(Mac用户是Rider → Preferences) - 在设置左侧导航栏里,找到
Editor → Code Style → C#,点击进入C#代码风格配置页面 - 切换到Code Generation标签页,在这里找和「Expression body(表达式体)」相关的设置:
- 找到「Methods」分组,确保勾选了Prefer expression body for single-line methods(不同版本的Rider可能表述略有差异,但核心意思就是“单行方法优先用表达式体”)
- 另外也可以去Formatting Rules标签页里检查一下,确保没有开启“强制将表达式体方法转换为块体”之类的规则
- 调整完之后点击
Apply再点OK保存设置,之后你再用Ctrl+Shift+L执行代码清理,原来的单行方法写法就会被保留下来了!
举个例子,你希望保留的写法是:
public Task<PackageTest?> GetByPackageAndTestIdAsync(Guid packageId, Guid testId) => _context.PackageTests.FirstOrDefaultAsync(p => p.TestId == testId && p.PackageId == packageId);
而不会被格式化成:
public Task<PackageTest?> GetByPackageAndTestIdAsync(Guid packageId, Guid testId) { return _context.PackageTests.FirstOrDefaultAsync(p => p.TestId == testId && p.PackageId == packageId); }
如果你的Rider版本比较新,可能设置项的位置或者名称有细微调整,但核心都是在C#代码风格里找到控制表达式体方法的偏好设置,放心找肯定能找到~
备注:内容来源于stack exchange,提问作者Firuz
相关产品推荐
相关产品推荐

