繁体   English   中英

使类默认密封

[英]Make class sealed by default

我在.editorconfig文件中为我的 C# 项目指定了许多代码样式。 如果我的所有类都可以默认sealed (当你创建一个新类时),我会发现它真的很有用。 .editorconfig文件中是否有此设置?

PS:请不要解释它是否/不是一个好主意,SO上有很多这样的线程,所以它是多余的。

您可以编辑在创建新文件时使用的 Visual Studio 项目模板。

我之前已经这样做了,将其更改为默认为公共类而不是私有类(或者现在使用 Visual Studio 2022 为内部类)。

这是社区版的位置,但其他版本将类似。

C:\Program Files\Microsoft Visual Studio\2022\Community\Common7\IDE\ItemTemplates\CSharp\Code\1033\Class

注意:这些文件是无关紧要的,例如对于 ASP.Net 核心项目,因此您可能需要四处寻找。

编辑器配置文件不处理创建新类,在 VS 中,它是代码片段和模板——你从巨大的文件类型嵌套列表中选择的东西。 如果您希望它们生成密封类,则必须编辑它们或创建自己的。

您可以采取的另一个方向是编写代码分析器和修复提供程序,使您的类sealed ,前提是您可以选择和实施的一组条件是真实的。 这还有一个额外的好处,那就是追溯应用到您已经编写的代码。

[未测试] 还有一些.editorconfig首选项,但它们似乎只是给出了一个建议:

[*.cs]
dotnet_diagnostic.MA0053.severity = suggestion

# Report public classes without inheritors (default: false)
MA0053.public_class_should_be_sealed = true

# Report class without inheritors even if there is virtual members (default: false)
MA0053.class_with_virtual_member_shoud_be_sealed = true

资源:

https://www.meziantou.net/performance-benefits-of-sealed-class.htm

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM