就我个人而言,我无法忍受区域标记,但显然它们对组织代码具有广泛的吸引力,所以我想测试水的温度,以供其他MS开发人员使用。
我个人的感觉是,任何简化代码的愚蠢伎俩都只会鼓励糟糕的编码行为,比如缺乏凝聚力、意图不明确、编码标准差或不完整。
一位程序员告诉我,代码区域明确了另一位程序员应该把他或她的贡献放在哪里,从而鼓励了编码标准。
但是,坦率地说,对我来说,这听起来像是一堆马粪。如果你有一个标准,程序员的工作就是理解这个标准是什么.您不需要在每个类文件中定义它。
而且,没有什么比打开文件时所有代码崩溃更烦人的了。我知道cntrl + M,L会打开所有的东西,但是你有可怕的“哈希区域定义”打开和结束行要读。
他们只是很烦人。
我最常用的快速编码理念是,所有程序员都应该努力创建清晰、简洁和有凝聚力的代码。区域标签只是用来制造噪音和多余的意图。
区域标记在经过深思熟虑的、意味深长的类中是没有意义的。
在我看来,他们唯一有意义的地方是自动生成的代码,因为除了个人的好奇心之外,你永远不应该阅读这些代码。
发布于 2011-01-01 14:37:56
StyleCop不喜欢区域
SA1124: DoNotUseRegions 致 C#代码包含一个区域。 规则描述 每当在代码中的任何位置放置区域时,都会发生违反此规则的行为。在包括Visual在内的许多编辑器中,默认情况下该区域将出现折叠,将代码隐藏在该区域内。隐藏代码通常是一种不好的做法,因为这会导致错误的决策,因为代码会随着时间的推移而被维护。 如何修正违规行为 若要修复违反此规则的问题,请从代码中删除该区域。
关于这是否是一条合理的规则,一些讨论是存在的。
人们的共识似乎是,有些人喜欢地区,有些人不喜欢--这取决于个别球队的决定。最重要的是在整个项目中使用一致的风格。
可以接受区域的一个地方是对实现特定接口的所有方法进行分组。值得注意的是,如果使用代码生成特性提供用于实现接口的方法存根,Visual将自动添加区域。
在我看来,他们唯一有意义的地方是自动生成的代码,因为除了个人的好奇心之外,你永远不应该阅读这些代码。
部分类特征更好地将自动生成的代码与同一类中手动生成的代码分离开来。
在使用自动生成的源代码时,可以将代码添加到类中,而无需重新创建源文件。Visual在创建Windows窗体、Web服务包装代码等时使用此方法。您可以创建使用这些类的代码,而不必修改Visual创建的文件。
发布于 2011-01-01 14:47:31
我喜欢区域,并且一直在使用它们。我使用它们来对类内同类的成员进行分组。
您已经有了在编辑器中折叠方法、类和名称空间的方法。区域为您提供了创建另一个级别的选项,该级别允许您以与您认为重要的内容相对应的方式排列代码。
发布于 2011-01-01 15:03:35
我认为#region很好。我本人从未使用过它,但如果您有一个大型或复杂的类,它可以帮助您找到您正在寻找的东西。想象一下,如果您正在实现ID3D10Device 1,那么要实现的方法就有一百多个。你想把它们都扔到一个地方吗?
https://stackoverflow.com/questions/4574357
复制相似问题