4

在创建新的 C# 类时,我不确定声明属性、事件委托、函数、函数覆盖等的最佳逻辑顺序是什么,以及在决定该顺序时应考虑哪些因素。

通常,在创建 WebUserControl 类后面的代码时,我最终会按以下顺序放置:

  1. 活动
  2. 特性
  3. 生命周期事件覆盖函数
  4. 其他功能

在决定如何在类文件中对类的这些元素进行排序时,是否有更合乎逻辑的方法?我应该考虑哪些因素?

4

8 回答 8

7

对编译没有任何影响,您可能希望将这些部分包装起来,#region以使阅读您的代码的人更容易知道它们在哪里并保持它们井井有条。它可能应该是您公司的编码标准,因此所有代码的组织方式相似,并且看起来不那么令人沮丧......

于 2009-10-21T12:44:20.073 回答
4

这是一种风格偏好。很多人这样做:

  1. 特性
  2. 覆盖
  3. 其他功能
  4. 活动

有些人还分别使用#regions.

于 2009-10-21T12:45:07.343 回答
4

无论StyleCop告诉我什么。:)

于 2009-10-21T13:32:58.373 回答
3

只要选择对你有意义的东西,或者符合你的编码标准。只要是一致的,没关系...

于 2009-10-21T12:43:56.127 回答
3

我认为顺序并不重要,只要您与自己的风格保持一致即可。考虑使用区域,但不要过度使用它们。作为我的一般经验法则,我避免所有嵌套区域。这只是太多的代码隐藏。

于 2009-10-21T12:44:21.427 回答
3

一致性作为一定的顺序更为重要。

就个人而言,我喜欢通过知名度快速找到成员:

  • 上市
  • 受保护
  • 私人的

作为类的用户,您通常只需要公共接口,如果您派生,您还需要受保护的接口,只有当您更改类本身时,您才需要查看私有的东西。

于 2009-10-21T12:50:21.617 回答
3

只要您在整个开发团队中拥有标准风格,它就对您有用。如果您使用的是 Visual Studio,那么使用类查看器和成员下拉菜单,它变得更加无关紧要。查看Regionerate插件 - 它为您提供按类型或字母顺序对成员进行排序的选项,还可以按类型、可见性等添加区域。如果默认设置不适合您,您可以定义自己的。

于 2009-10-21T12:59:41.983 回答
2

我通常将成员声明放在顶部,然后是方法(生命周期和其他),然后是事件处理程序,最后是属性。对于方法,我尝试按照它们将被调用的顺序大致对它们进行排序。例如。首先是加载页面时调用的方法,然后是保存页面提交时调用的方法。属性和事件处理程序放在最后,因为它们通常是微不足道的,所以我把它们放在一边。

于 2009-10-21T12:51:10.857 回答