Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ruby-on-rails-3/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
我应该按什么顺序在C#类中放置属性、事件、函数、函数重写等?_C#_Readability - Fatal编程技术网

我应该按什么顺序在C#类中放置属性、事件、函数、函数重写等?

我应该按什么顺序在C#类中放置属性、事件、函数、函数重写等?,c#,readability,C#,Readability,在创建新的C#类时,我不确定声明属性、事件委托、函数、函数重写等的最佳逻辑顺序是什么,以及在决定该顺序时应考虑哪些因素 通常,在创建WebUserControl的代码隐藏类时,我会按以下顺序放置: 事件 性质 生命周期事件覆盖功能 其他职能 在决定如何在类文件中对类的这些元素进行排序时,是否有更符合逻辑的方法来执行此操作?我应该考虑哪些因素?只需选择对您有意义的内容,或者您的编码标准中的内容即可。只要它是一致的,就不重要了……对编译没有任何影响,您可能希望将这些部分包装在#region中,以便阅

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

通常,在创建WebUserControl的代码隐藏类时,我会按以下顺序放置:

  • 事件
  • 性质
  • 生命周期事件覆盖功能
  • 其他职能

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

    只需选择对您有意义的内容,或者您的编码标准中的内容即可。只要它是一致的,就不重要了……

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

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

    这是一个样式首选项。很多人这样做:

  • 性质
  • 覆盖
  • 其他职能
  • 事件

  • 有些人还使用
    #区域
    来分隔每个区域

    一致性作为某种顺序更为重要

    就个人而言,我喜欢通过可见性快速找到成员:

    • 公开的
    • 保护
    • 私人的

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

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

    只要您在整个开发团队中都有一个标准样式,它就是适合您的样式。如果您使用的是VisualStudio,那么通过类查看器和成员下拉菜单,它就变得更加无关紧要了。查看外接程序-它提供按类型或字母顺序对成员排序的选项,还提供按类型、可见性等添加区域的选项。如果默认设置不适合您,您可以定义自己的设置。

    任何提示。:)

    同意,拥有任何类型的逻辑组织的唯一“点”是为了您自己(和其他开发人员)的利益,以便在以后需要返回时能够找到东西。使用任何你觉得合适和看起来合适的东西;它们隐藏代码,通常只增加很少或没有价值;一旦你明白了,也许你想看看这个免费工具:谢谢。Regionerate似乎非常有用。目前,我禁用了所有大纲,因为我正在使用的代码库真的很混乱,我需要查看每个类中的所有内容以确认其行为,但对于重新分解的代码,这可能非常有用。