在类结构方面,是否有一个官方的c#项目顺序指南?
它是这样的:
公共字段 私有字段 属性 构造函数 方法 ?
我很好奇物品的摆放顺序是否有硬性规定?我有点到处都是。我想坚持一个特定的标准,这样我就可以在任何地方使用它。
真正的问题是我的更复杂的属性最终看起来很像方法,它们在构造函数之前的顶部感觉不合适。
任何建议/建议吗?
在类结构方面,是否有一个官方的c#项目顺序指南?
它是这样的:
公共字段 私有字段 属性 构造函数 方法 ?
我很好奇物品的摆放顺序是否有硬性规定?我有点到处都是。我想坚持一个特定的标准,这样我就可以在任何地方使用它。
真正的问题是我的更复杂的属性最终看起来很像方法,它们在构造函数之前的顶部感觉不合适。
任何建议/建议吗?
当前回答
正如前面提到的,c#语言中没有规定布局的东西,我个人使用区域,我对一个普通类也这样做。
public class myClass
{
#region Private Members
#endregion
#region Public Properties
#endregion
#region Constructors
#endregion
#region Public Methods
#endregion
}
反正对我来说是有道理的
其他回答
正如前面提到的,c#语言中没有规定布局的东西,我个人使用区域,我对一个普通类也这样做。
public class myClass
{
#region Private Members
#endregion
#region Public Properties
#endregion
#region Constructors
#endregion
#region Public Methods
#endregion
}
反正对我来说是有道理的
从StyleCop
私有字段,公共字段,构造函数,属性,公共方法,私有方法
由于StyleCop是MS构建过程的一部分,您可以将其视为事实上的标准
我已经重新构造了公认的答案,至于我认为是一个更好的布局:
在类、结构或接口中:
常数字段 只读的字段 字段 事件 属性 索引器 构造函数 终结器(析构函数) 接口(接口实现) 方法 类 结构体 枚举 代表
在这些组中,按访问顺序排列:
公共 内部 保护内部 受保护的 私人
在每个访问组中,按静态顺序,然后是非静态的:
静态 非静态
我还认为应该尽量减少嵌套类型。我经常看到人们有嵌套的类,枚举,委托,它们最好是一个单独的实例。使类型嵌套几乎没有任何好处。也要把它们放在单独的文件中。一个包含5个类的文件对我来说很混乱。
通常我会遵循下面的模式:
静态成员(通常有其他上下文,必须是线程安全的,等等) 实例成员
每个部分(静态和实例)由以下成员类型组成:
运算符(总是静态的) 字段(在构造函数之前初始化) 构造函数 析构函数(是遵循构造函数的传统) 属性 方法 事件
然后成员按可见性排序(从低到高):
私人 内部 内部保护 受保护的 公共
顺序不是教条:简单的类更容易阅读,然而,更复杂的类需要特定于上下文的分组。
我不知道哪种语言或行业标准,但我倾向于按照这样的顺序排列,每个部分都用#区域包装:
使用报表
名称空间
类
私有成员
公共属性
构造函数
公共方法
私有方法