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