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

本文关键字:顶部 声明 底部 字段 属性 变量 代码 | 更新日期: 2023-09-27 18:02:32

在c#代码的底部附近声明它很常见吗?

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

有像Resharper这样的工具可以帮助你组织你的源代码,它有一个选项来指定它应该在哪里为我创建区域吗?

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

这是一个风格上的讨论,因为对于大多数编译器,(类文件的)顶部或底部的位置不会影响结果。从历史上看,很多人都是在高层工作,但我喜欢让他们在底层工作。

为什么?

因为一旦我声明了那个成员变量,我就不需要再看到它了——它会显示在我的智能感知中,所以我不需要在我的脸上看到它。当您打开一个文件时,您会看到顶部—我希望直接看到我的代码,而不是一堆变量声明。这是特别相关的,因为变量定义在VS编辑器中不是一个可折叠的区域,所以如果它们在顶部,你就不得不滚动过去。如果我需要跳转到它,那么Visual Studio的F12或者只是一个Ctrl+End将带我到那里。

这是一种有些人一开始可能很难处理的风格,但你很快就会喜欢上它。对于较为成熟的文件,这是一种特别好的方法。你还会发现,如果你使用ReSharper这样的插件,它会很聪明地把生成的声明和其他的放在一起——这意味着如果你把它们放在底部,ReSharper就会把它们放在那里。当然,如果你在一个文件中有多个类,这可能会变得很混乱,但如果你这样做,那么变量定义的位置是你的风格问题中最小的。 编辑:

冒着偏离主题的风险,对使用#region块的评论:我一直使用区域,我喜欢它们,因为它们帮助我将代码折叠起来。然而,使用它们需要纪律,因为不相关的代码很容易进入区域。有多少次你寻找代码,却发现它被埋在不属于它的#region中?

我在顶部声明它们。试试StyleCop…我想它会给你一个关于这一点的建议,以及无数其他的风格问题……这有点酷……你可以禁用你不同意的规则

我对这个话题的看法:

我喜欢无状态编程。在自动实现属性存在之前,类中私有字段的数量是其状态性的粗略度量。这就是为什么我更倾向于把他们放在首位,以便快速留下印象。出于同样的原因,现在我想把auto属性放在顶部。

恐怕没有统一的约定。有些人喜欢对事物进行逻辑分组:字段和与它们一起操作的方法/属性在一起。有些人喜欢把公共的放在上面,把私人的放在下面。

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