是否有一种标准方法来组织类中的方法?

Mat*_*hew 39 c# coding-style

在类中组织方法似乎有许多不同的方法.我可以通过访问对方法进行分组,并按字母顺序排序.我可以将相关方法组合在一起.我可以使用两者的混合,或完全不同的东西.有没有一种标准的方法来解决这个问题?如果没有,你怎么接近它?

Joe*_*oey 47

StyleCop强制执行以下操作:

在类,结构或接口中,元素必须按以下顺序放置:

  • 字段
  • 构造函数
  • 终结者(Destructors)
  • 代表
  • 活动
  • 枚举
  • 接口
  • 属性
  • 索引
  • 方法
  • 结构

此外,元素按访问顺序排序:

  • public
  • internal
  • protected internal
  • protected
  • private

以及其他一些规则:

  • 包含必须出现在字段之前
  • static 元素必须出现在实例元素之前.

这可能是一个很好的基线.至于其他订购规则,我通常将相关方法组合在一起.

  • 创建#regions以隐藏自动生成的代码.部分类现在实现了这一点.我认为他们混淆不仅仅是帮助.开发工具中有很多查找功能.#regions只是杂乱无章,imho. (9认同)
  • @ 280Z28 Ctrl + M,Ctrl + L. (2认同)
  • 老实说,我发现区域有视觉噪音和代码气味。他们隐藏了代码。为什么代码被隐藏?从我所看到的是使班级更易于导航。我全都负责组织您的类,但是如果您无法打开自己喜欢的IDE并查看代码的组织方式,则该类太大,可能需要分解成多个较小的组件。 (2认同)

Tru*_*ill 7

无论你做什么,都要把它放在你的标准中并保持一致.我们使用自定义Regionerate配置来订购我们的方法.团队中的每个人都使用相同的配置.

编辑:我们现在使用ReSharper代码清理与自定义类型成员布局.


Ste*_*gli 5

我使用NArrange来完成我想要的大部分事情:组字段,方法......按字母顺序和访问修饰符.它还强制执行一些Style Cop规则(例如元素类型的顺序,using语句的位置).NArrange在某种程度上是可配置的,如果你不喜欢它,你不必使用默认配置.

更新:现在我使用Resharper,因为NArrange无法正常使用更新的C#语法.