回答
看看这个SO question。它有StyleCop Rules Documentation的要求。
相当好用的标准。
ASIDE:C#有一个free plugin。当你知道自己在做错什么时,遵循规则变得更简单。它会告诉你是否违反了规则,并可以在构建步骤中设置为运行。
有ordering rules与StyleCop它们遵循作为标准化的点是有用的。
不,这只是个人喜好的问题。如果适用,只需遵循你的公司之一。
有由StyleCop强制执行的规则,我见过很多人作为标准使用。
坦率地说,他们有意义,但我不认为这是最好的方式。
我认为应该按照功能,而不是按类型或可访问性或static
等来分组。按照功能组织的方案在尝试读取或维护代码时需要最少量的导航基础。任何其他订购方案(或*规则)都会让您在尝试使用它时在整个班级中进行导航。将事物放在一起的概念性排序可以最大限度地减少跳跃。这是为了更容易理解和使用它。这是一个实际的观点,而不是为了制定可执行的规则而形成规则。
:他们是有意义的,因为它们是规则,他们呼吁我们之间的强迫症,他们可以通过机被强制执行,但谁在乎,如果机器可以强制执行呢?但代码不适用于机器,它适用于人类。当我需要理解代码时,我并不认为“如果我只能先了解所有常量字段,然后再理解所有字段等。”我采取了一种非常不同的方法。我希望首先看到大局,并且有一件事可以帮助我们看到代码由功能组织。
这里是Microsoft C# Coding Conventions (C# Programming Guide)
它没有提到订购了一类public
,protected
或private
功能或成员。
我知道在我过去的经验,FxCop
曾“建议”,我把我的公共职能在我的私人聚会,但还是不一定的标准。
当人们都在说,顺序通常并不重要。但是,有一个重要的例外,那就是初始化静态字段。您可以根据其他静态字段的值来初始化静态字段 - 它们最终都会被编译到静态构造函数中,但是会按照写入代码的顺序进行编译。
例如:
class Program {
private static int j = 4;
private static int i = Program.j;
static void Main(string[] args) {
Console.WriteLine(Program.i); // 4
}
}
但是:
class Program {
private static int i = Program.j;
private static int j = 4;
static void Main(string[] args) {
Console.WriteLine(Program.i); // 0
}
}
如果你决定围绕重新洗牌的成员,使这情况考虑。为了完全安全,您可以将初始化置于静态构造函数中,如:
class Program {
private static int i;
private static int j;
static Program() {
Program.j = 4;
Program.i = Program.j;
}
}
- 1. 私人课程中的公共成员
- 2. 公共属性和私人成员C#
- 3. 选择一个功能的成员,非会员,私人,公共等
- 4. JavaScript的私人和公共职能和成员
- 5. 私人和公共职能
- 6. 公共/私人
- 7. 从内部/私人功能调用公共功能?
- 8. 如何使用公共属性设置私人成员的值?
- 9. javadoc所有 - 私人,公共和受保护的成员
- 10. 公共和私人访问为相同的成员函数
- 11. 作为私人/公共成员的矢量类设计?
- 12. 公共类成员或方法返回一个私人成员的引用?
- 13. 公共类,但私有成员变量?
- 14. 将成员从公共更改为私人
- 15. 私人与公共的typedef
- 16. 在课堂上正确组织公共/保护/私人功能
- 17. 这个功能应该是公共还是私人?
- 18. 私人和公共财产
- 19. 私人与公共继承
- 20. 推送私人或公共?
- 21. 私人/公共qt信号
- 22. 私人与公共港口
- 23. 私人和公共变量
- 24. std :: enable_shared_from_this;公共vs私人
- 25. 如何让一个会员类别的功能成为公共的,而其余的则是私人的?
- 26. 私人非const和公共const成员函数 - 和平共存吗?
- 27. 将所有成员的私人或公共接入模式的Java
- 28. Python中的私人成员
- 29. CoffeeScript中的私人成员?
- 30. Java中的私人成员
没有任何样式或模式。代码无关紧要,只针对读者。 –
@JohnSaunders这对我很有趣。我会期望一个人对另一个人进行关注,这样当你看到所有的公众或所有私人成员/功能时,你就会知道。哼。 – Kyle
它为什么重要?通常,您的IDE将帮助您导航。我想如果你使用记事本,emacs或者vi开发的话会有帮助。 –