代码清理:应该在类的顶部还是底部声明字段,变量和属性?

时间:2011-07-13 22:48:50

标签: c# organization

在C#代码中声明它接近底部是否很常见?

我看到很少的例子就是这样做的。

像Resharper这样的工具可以帮助您组织源代码,是否可以选择指定应该为我创建区域的位置?

4 个答案:

答案 0 :(得分:4)

这是一种风格讨论,因为大多数编译器位于顶部或底部(类文件)的位置不会影响结果。从历史上看,很多人都会在顶部做到这一点,但我喜欢把它们放在最底层。

为什么?

因为一旦我宣布了那个成员变量,我就不再需要它了 - 它出现在我的intellisense中,所以我不需要它在我脸上。当你打开一个文件时,你会看到顶部 - 我想直接看到我的代码,而不是一堆变量声明。这是特别相关的,因为变量定义不是VS编辑器中的原生可折叠区域,因此如果它们位于顶部,则您将被迫滚过它们。如果我需要跳转到它,那么Visual Studio的 F12 或只是 Ctrl + End 将带我到那里。

这是一种有些人最初可能难以处理的风格,但它会很快在你身上发展。对于更成熟的文件,这是一种特别好的方法。您还会发现,如果您使用的是像ReSharper这样的插件,那么它就足够聪明地将生成的声明与其他所有声明放在一起 - 这意味着如果您将它们放在ReSharper将放置它的底部。当然,如果文件中有多个类,这可能会变得混乱,但如果你这样做,那么变量定义放置是你风格问题中最不重要的。

编辑:

冒着偏离主题的风险,改为使用#region块的评论:我一直使用区域,我喜欢它们,因为它们帮助我将代码折叠掉。但是,使用它们需要遵守规则,因为非相关代码很容易在区域内部进行。你有多少次寻找代码只是为了找到它埋在#region里的代码?

答案 1 :(得分:3)

我在顶部宣布他们。试试StyleCop ...我认为它会给你一个推荐,还有一百万个其他风格的问题...它有点酷...你可以禁用你不同意的规则

答案 2 :(得分:1)

AFAIK没有共同的惯例。有些人更喜欢逻辑地对事物进行分组:字段和与它们一起操作的方法/属性一起使用。其他人更喜欢把公共事物放在首位,私人放在最底层。

真正重要的是,您使用的风格与您团队的风格一致。或者,如果还没有团队风格,试着说服团队坚持一个(你需要说服他们你的风格比没有风格更好)。

答案 3 :(得分:1)

关于这个话题的我(迟到)5美分:

我喜欢无状态编程。在存在自动实现的属性之前,类中私有字段的数量是其状态的粗略度量。这就是为什么我更喜欢让他们保持在顶部以获得快速印象。出于同样的原因,现在我想将自动属性组合在一起。