在创建新的 C# 类时,我不确定声明属性、事件委托、函数、函数覆盖等的最佳逻辑顺序是什么,以及在决定该顺序时应考虑哪些因素。
通常,在创建 WebUserControl 类后面的代码时,我最终会按以下顺序放置:
- 活动
- 特性
- 生命周期事件覆盖函数
- 其他功能
在决定如何在类文件中对类的这些元素进行排序时,是否有更合乎逻辑的方法?我应该考虑哪些因素?
在创建新的 C# 类时,我不确定声明属性、事件委托、函数、函数覆盖等的最佳逻辑顺序是什么,以及在决定该顺序时应考虑哪些因素。
通常,在创建 WebUserControl 类后面的代码时,我最终会按以下顺序放置:
在决定如何在类文件中对类的这些元素进行排序时,是否有更合乎逻辑的方法?我应该考虑哪些因素?
对编译没有任何影响,您可能希望将这些部分包装起来,#region
以使阅读您的代码的人更容易知道它们在哪里并保持它们井井有条。它可能应该是您公司的编码标准,因此所有代码的组织方式相似,并且看起来不那么令人沮丧......
这是一种风格偏好。很多人这样做:
有些人还分别使用#regions
.
无论StyleCop告诉我什么。:)
只要选择对你有意义的东西,或者符合你的编码标准。只要是一致的,没关系...
我认为顺序并不重要,只要您与自己的风格保持一致即可。考虑使用区域,但不要过度使用它们。作为我的一般经验法则,我避免所有嵌套区域。这只是太多的代码隐藏。
一致性作为一定的顺序更为重要。
就个人而言,我喜欢通过知名度快速找到成员:
作为类的用户,您通常只需要公共接口,如果您派生,您还需要受保护的接口,只有当您更改类本身时,您才需要查看私有的东西。
只要您在整个开发团队中拥有标准风格,它就对您有用。如果您使用的是 Visual Studio,那么使用类查看器和成员下拉菜单,它变得更加无关紧要。查看Regionerate插件 - 它为您提供按类型或字母顺序对成员进行排序的选项,还可以按类型、可见性等添加区域。如果默认设置不适合您,您可以定义自己的。
我通常将成员声明放在顶部,然后是方法(生命周期和其他),然后是事件处理程序,最后是属性。对于方法,我尝试按照它们将被调用的顺序大致对它们进行排序。例如。首先是加载页面时调用的方法,然后是保存页面提交时调用的方法。属性和事件处理程序放在最后,因为它们通常是微不足道的,所以我把它们放在一边。