2

我经常看到由多个#region 标签组成的大型函数。#region/#endregion 是否正在迅速演变为避免重构为更小的函数的手段?

在大多数情况下,#region 块中定义的代码可以移动到单独的函数中。#region 的初衷是什么?

4

11 回答 11

11

partialVisual Studio 使用它将自动生成的代码与用户定义的代码分开之前。

于 2010-11-04T17:55:28.347 回答
4

区域是一个工具,就像其他任何东西一样。如果您对它们有用……太好了。如果没有,太棒了。它们允许您关闭和分离整个代码块,以便开发人员可以组织事物并快速找到它们。如果您有一个名为“Properties”的区域,则不需要火箭外科医生就可以找出其中的内容。因此它可以折叠起来,并且不会再不必要地干扰页面滚动。

这是一个维护项目,可能会或可能不会帮助开发人员跟踪他们的类,并可能避免踩到彼此的代码。对于那些不认为它们有用的人,不要使用它们。对于我们的团队,我们定义了使用它们的标准,并且我们几乎坚持该标准。只是将东西扔到区域中会使问题变得更糟,因此采用标准并坚持它总是好的(无论您选择哪种方式)。

编辑:我想不出在特定方法中使用区域的好用处。这对我来说似乎很混乱,但我不会感到惊讶的是找到一个对它有用的人(在他们看来)。

于 2010-11-04T18:08:46.877 回答
3

它还可以用于将一个类分解为不同的部分(如方法、属性)。我不再是那个的忠实粉丝了。

于 2010-11-04T17:51:54.213 回答
3

它的懒惰编码。如果方法中包含#regions。它应该被重构为更小的方法。

于 2010-11-04T17:59:53.417 回答
3

模糊/混淆代码

于 2010-11-04T17:50:40.717 回答
2

我习惯将我的代码折叠成有组织的组,仅此而已。

于 2010-11-04T17:52:58.660 回答
2

使代码更具可读性和更易于浏览。它不仅仅是用于函数的东西,它在类范围内更有用。例如,您可能希望将不同类型的方法、字段、属性等组合在一起。

当您在函数内部使用区域时,您可能应该考虑重构

于 2010-11-04T17:53:09.060 回答
1

我使用#region/#endregion 来标记一段公共代码。这样我就可以把它折叠起来,不碍事。例如:

#region Getters and setters
...
#endregion

在我创建的每个班级中。这些几乎永远不会改变,我不需要它们在课堂上打乱我的视野。

于 2010-11-04T17:53:58.753 回答
1

有很多情况——通常在类范围内,但偶尔在函数范围内,一种语言的规则要求生成大量重复代码。#region 的一个很好的用途是用一行指示替换的内容来直观地替换大量此类代码。例如,在 VB 中,如果想要有很多由私有读写字段支持的只读属性,可以声明这些字段,然后有一个#region,其描述为“foo、bar、baz 的简单只读属性,和福特。” 这些属性的代码将是 20 行(通常在每个属性之间加上一个空行),但是任何阅读描述的人都会确切地知道这 20 行要说什么。给十几个程序员这个描述,以及变量的声明,并且所有这些都可能会产生逐字符相同的代码(可能除了属性间间距和注释)。为什么要让编辑器如此混乱?

于 2010-11-04T18:12:09.697 回答
1

我也不喜欢使用它,但我在想到的一个特殊情况下使用了它。我有一个本地域创建工具,用于创建/设置我们托管的初始客户站点。创建过程大约有 20 个部分,所以我使用 #region 块来划分部分......唯一的目的是组织......但我之前不小心删除了整个代码块,因为在其中选择了折叠的区域标签使用其他代码...我不建议养成使用它们的习惯。

于 2010-11-04T18:17:15.047 回答
0

我使用该#region指令将班级成员分组。我的每个文件中都有常量、字段、属性、构造函数、覆盖等部分(尽管并非每次都存在)。这是我自己的个人编码标准,它可以帮助我快速找到东西。我从不#region在函数内部放置方向。如果需要,您的功能可能太大#region了。

于 2010-11-04T18:23:53.193 回答