在类结构方面,是否有一个官方的c#项目顺序指南?
它是这样的:
公共字段 私有字段 属性 构造函数 方法 ?
我很好奇物品的摆放顺序是否有硬性规定?我有点到处都是。我想坚持一个特定的标准,这样我就可以在任何地方使用它。
真正的问题是我的更复杂的属性最终看起来很像方法,它们在构造函数之前的顶部感觉不合适。
任何建议/建议吗?
在类结构方面,是否有一个官方的c#项目顺序指南?
它是这样的:
公共字段 私有字段 属性 构造函数 方法 ?
我很好奇物品的摆放顺序是否有硬性规定?我有点到处都是。我想坚持一个特定的标准,这样我就可以在任何地方使用它。
真正的问题是我的更复杂的属性最终看起来很像方法,它们在构造函数之前的顶部感觉不合适。
任何建议/建议吗?
当前回答
这是一个古老但仍然非常相关的问题,所以我要补充一点:当您打开一个以前可能读过也可能没有读过的类文件时,您首先要查找的是什么?字段?属性呢?我从经验中意识到,我几乎总是去寻找构造函数,因为最基本的事情是理解这个对象是如何构造的。
因此,我开始在类文件中把构造函数放在前面,结果在心理上是非常积极的。将构造函数放在一堆其他东西后面的标准建议让人感觉不协调。
c# 6中即将出现的主构造函数特性提供了证据,证明构造函数的自然位置是在类的顶部——事实上,主构造函数甚至在开大括号之前就被指定了。
有趣的是,这样的重新排序会产生多大的不同。这让我想起了using语句过去是如何排序的——首先是System名称空间。Visual Studio的“Organize Usings”命令使用了这个顺序。现在使用只是按字母顺序排序,没有对系统名称空间进行特殊处理。结果就是感觉更简单、更干净。
其他回答
我知道这是旧的,但我的命令如下:
公共的,受保护的,私人的,内部的,抽象的
常量 静态变量 字段 事件 构造函数(s) 方法 属性 代表
我还喜欢像这样写出属性(而不是简写方法)
// Some where in the fields section
private int someVariable;
// I also refrain from
// declaring variables outside of the constructor
// and some where in the properties section I do
public int SomeVariable
{
get { return someVariable; }
set { someVariable = value; }
}
从StyleCop
私有字段,公共字段,构造函数,属性,公共方法,私有方法
由于StyleCop是MS构建过程的一部分,您可以将其视为事实上的标准
不是按可见性或按项目类型(字段、属性、方法等)分组,而是按功能分组呢?
我建议使用IDesign的编码标准或Brad Abram网站上列出的编码标准。这是我找到的最好的两个。
布拉德会说……
类成员应该按字母顺序排列,并分组到部分(字段,构造函数,属性,事件,方法,私有接口实现,嵌套类型)
我尽量让它简单(至少对我来说)
枚举 声明 构造函数 覆盖 方法 属性 事件处理程序