2010-11-04 33 views
2

我经常看到由多个#地区标签组成的大型函数。 #region /#endregion是否正在迅速演变,以避免重构为更小的函数?使用'#region'作为快速修复以避免重构成更小的函数

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

+4

不良开发商利用#地区的隐藏恶意代码。 *几乎任何情况下,似乎区域可能是一个好主意,实际上只是表明一个问题。 – 2010-11-04 18:24:25

回答

11

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

+0

到目前为止唯一的答案,实际上匹配的问题。 – 2010-11-04 18:04:28

3

它也可以被用于分解一类到它的不同的部分(像方法,属性)。我不再那么喜欢它了。

+0

为什么不呢?还有7个去... – 2010-11-04 19:52:16

+0

我一开始以为这是最伟大的事情。人们会滥用它并将它们放在任何地方。查看代码很麻烦。我知道折叠/展开的热键只能让它变得有点耐人寻味。 – Lareau 2010-11-04 23:58:48

2

我用来将我的代码折叠到有组织的组中,没有什么比这更简单了。

2

使代码更具可读性,更易于浏览。它不仅仅是用于函数的东西,它在类作用域中更有用。例如,您可能想将不同类型的方法,字段,属性等分组在一起。

当您使用内部功能的区域,那么你或许应该考虑重构,而不是

1

我用#区域/#endregion标记过的公共代码段。这样我就可以把它折叠起来并且避开我的路。例如:

#region Getters and setters 
... 
#endregion 

是在我创建的每个类中。那些几乎不会改变,我不需要他们在课堂上工作时混乱我的观点。

3

它的惰性编码。 如果一个方法内有#个区域。它应该被重构为更小的方法。

4

区域是一个工具,就像其他任何东西一样。如果你有他们的用途...好的。如果不是,真棒。它们允许您关闭并分离整个代码块,以便开发人员可以快速组织并快速找到它们。如果你有一个叫做“属性”的地区,它不会让火箭医生弄清楚那里有什么。因此它可以被折叠并且不再妨碍不必要的滚动页面。

这是一个维护项目,可以帮助或不帮助开发人员跟踪他们的类,也可能避免踩彼此的代码。对于那些没有用处的用户,请勿使用它们。对于我们的团队,我们定义了使用它们的标准,并且我们非常坚持这一标准。只要把东西扔到区域就可以使问题变得更糟,所以采用标准并坚持它(以你选择的方式)总是很好的。

编辑:我想不出在特定方法中使用区域的好用法。这对我来说看起来很混乱,但是我发现找到一个适合它的人(在他们看来)并不令人惊讶。

1

有很多情况 - 通常在类范围内,但偶尔在功能范围内,语言的规则需要一个产生大量重复代码。 #region的一个很好的用法是用一行代替大量这样的代码,指示替换的内容。例如,在VB中,如果想要拥有许多只读属性支持私有读写字段,则可以声明这些字段,然后拥有一个#地址,其描述为“foo,bar,baz的简单只读属性,和fnord。“这些属性的代码是20行(另外,通常情况下,每个属性之间的空行),但任何人都阅读了说明会确切地知道那些二十行会说,给十几个程序员这样的描述,与沿声明的变量,所有的人都可能会产生字符的字符相同的代码(除了可能的话,对属性间的间距和评论)。为什么填充这种混乱的编辑器?

1

我不喜欢使用它要么但我已经在我想到的一个特定的情况下使用它。我有一个建创建/设置最初的客户网站,我们主机的本地域中创建工具。大约有20个章节的创作过程,从而我用#地区块来划分部分......唯一的目的是组织......但我之前意外删除了整个代码块,因为交流ollapsed地区标签被选中与其他代码...我不会建议养成使用它们的习惯。

0

我把我的班成员到使用#region指令组。我在每个文件中都有常量,字段,属性,构造函数,覆盖等部分(尽管不是每一个都存在)。这是我自己的个人编码标准,它可以帮助我快速找到事物。我从来没有把#region方向放入函数中。如果你需要#region,你的功能可能太大了。