您在程序代码主体中首选的元素顺序是什么?为什么?

时间:2010-07-20 19:16:14

标签: c# java

当然,在.java或.cs文件的顶部是包/名称空间声明,后跟import / using语句。

但是让我感到困惑的是我应该把变量声明放在哪里?在顶部还是在底部?

这是我更喜欢的;

package/namespace declaration
import/using declaration of microsoft's/java namespaces
import/using declaration of standard 3rd party namespaces
import/using declaration of my personal namespaces

constructors
private methods, each preceded by any private variable that was first used.
protected methods, each preceded by any private variable that was first used.
public methods, each preceded by any private variable that was first used.

inner/nested classes and enums

private anon classes assignment
protected variables/anon classes assignment
public variables/assigned anon classes assignment

但是我意识到许多人喜欢在包/命名空间和import / using声明之后将所有变量放在顶部。这很麻烦,因为有时候变量和分配的anon类的数量太多了,这会掩盖构造函数的可见性 - 我需要看到的第一行是构造函数,因为它们告诉我实例化的签名。

然后对于立即分配给变量的anon类 - 我认为它们是“变量结构”的一部分,所以我将它们分组为变量。

我将代码元素的位置系统化,以便我轻松找到它们。

2 个答案:

答案 0 :(得分:1)

Java标准说要将您的声明从私人订阅到公开。我觉得这对我很有帮助。我不知道为什么,但阅读底部代码对我来说非常好。所以我已经把它转到了C#(我的主要语言),在那里我订购了一个类

using statements
namespace
private static fields
private static methods/properties
public static methods/properties
private fields
private methods/properties
protected methods/properties
public methods/properties

我不像大多数人那样给构造函数他们自己的部分,除了他们是他们类别的第一个条目(例如,公共构造函数只是在受保护的方法之后)。我几乎从不使用内部范围的东西,除了整个类。

我从不使用区域,我从不使用公共字段(总是属性)

答案 1 :(得分:1)

我倾向于按照我使用它们的顺序排序。命名空间,后跟using声明,后跟构造函数,然后是嵌套类,然后是参数,公共方法,最后是私有方法。基本上,它是按照我的代码新手应该阅读的可读顺序,以获得关于类的功能的广度优先。这也是为了如何使用它们;首先你需要知道命名空间,然后如何构建,然后如何配置,然后如何使用。

除此之外,私有成员变量始终位于使用它们的任何位置。如果我有一个私有帮助器方法,我会尝试将它放在相应的公共方法旁边,然后将它们放在#region中。但通常任何私人成员都会接近底层,因为我觉得有人使用该课程需要比公共成员更少阅读它们。

我认为这还取决于你是在编写别人会阅读的代码还是编写只有你维护的代码。当它是后者时,我倾向于将更多“困难”的东西放在更接近顶端的位置,因为我知道那些是我可能会修复错误的东西。