我听说过很多关于使方法简短的知识,而且我听过很多程序员说,在方法中使用#region标记是一个确定的信号,即它太长了,应该重构为多个方法。但是,在我看来,在许多情况下,在方法中使用#region标签分隔代码是重构为多个方法的绝佳解决方案。
假设我们有一种方法,其计算可以分为三个相当不同的阶段。此外,这些阶段中的每个阶段仅与该方法的计算有关,因此将它们提取到新方法中不会获得代码重用。那么,将每个阶段提取到自己的方法中有什么好处?据我所知,我们获得的是每个阶段都有一定的可读性和单独的变量范围(这将有助于防止对特定阶段的修改意外破坏另一个阶段)。
但是,这两种方法都可以实现,而无需将每个阶段提取到自己的方法中。区域标签使我们可以将代码折叠成可读性强的形式(其附加好处是,如果我们决定扩展和检查代码,则不再需要在该文件中保留位置),并且只需将每个阶段包装在{}
创建自己的工作范围。
这样做的好处是,我们不会使用实际上仅与第四个方法的内部工作相关的三个方法来污染类级别的范围。在我看来,立即将长方法重构为一系列短方法似乎是等同于过早优化的代码重用。您正在引入额外的复杂性以解决在许多情况下永远不会出现的问题。如果有出现代码重用的机会,您以后总是可以将阶段之一提取到其自己的方法中。
有什么想法吗?
#region
标签,而且还完全关闭了Visual Studio中的代码折叠功能。我不喜欢试图向我隐藏的代码。