任何.NET'#region指令'约定的想法?

PaN*_*1Me 10 .net c# naming-conventions region regions

我非常感谢您在代码中定义区域的可能性,因为它可以疯狂地提高可读性.

无论如何,我想让所有人在所有类中使用相同的约定(使用所有区域的预定义顺序),例如:

  • 私人领域
  • 构造函数
  • 类属性
  • 事件处理程序
  • 等等...

你有什么命题可以看出这个区域是什么样的(哪些区域有意义,哪些区域应该有它们)以及它们应该以何种顺序定义?

Mic*_*ins 37

我的惯例是不要使用它们.

如果你发现你的课程变得太大,你需要通过地区隐藏它的大部分,我建议你的课程太复杂,应该分开.

  • +1,http://www.google.com/search?q=c%23+regions+are+bad&ie=utf-8&oe=utf-8&aq=t&rls=org.mozilla:en-US:official&client=firefox-a (2认同)
  • 好吧,但我们假设我们有一个简单的WinForm,后面的代码中有大约20个EventHandler.在这种情况下真的隐藏它们毫无意义吗? (2认同)
  • @ PaN1C_Showt1Me嗯,这就是部分类的用途. (2认同)
  • @ PaN1C_Showt1Me - 是的.除了事件处理程序和方法调用之外,你的WinForm代码中不应该有太多其他代码.那应该不会太大. (2认同)

Jon*_*jap 12

有人曾说过像上面那样的约定:

  • 私人领域
  • 构造函数
  • 类属性
  • 事件处理程序
  • 等等...

就像设置一张桌子,所有的盘子在一起,所有的勺子在一起,所有的刀子都在一起,所有的叉子都在一起.

我对这个#region问题的看法是将相关方法,事件定义和属性放在一个区域中.然而,完全不必这样做会表明代码气味(你的课程太大或太多东西)但这是将它重构为更好的课程的良好的第一步.

  • 如果你要吃代码,那将会很有意义. (14认同)
  • 是的,我希望代码很美味. (3认同)

Kei*_*oom 6

每当我看到区域时,我认为代码是生成的或需要重新分解.

避免使用它们,当你觉得需要它们时,重新检查你正在做的事情并尝试将你的课程分成较小的课程.最终,这将有助于应用程序的可读性,而不是使用区域.


Enr*_*lio 6

我个人不建议将代码区域作为代码约定的一部分.主要原因是地区隐藏代码,这可能会导致以下问题:

  • 开发人员可能会错过源代码的一些重要部分
  • 同一文件中的平均LOC数量趋于增加

如果您有兴趣在团队中实施编码样式约定,请查看Microsoft StyleCop.请注意,该工具目前仅适用于C#.