2011-03-18 85 views

回答

6

注意,只有人能准确回答这个问题的是你,和你的团队。如果你的团队很高兴在单个文件中找到几种相关的类型,那么......由于......无论如何......那么我或任何其他人所说的应该是......无关紧要。

在任何情况下,我会变成这个问题颠倒:

  • 是否有任何理由将两个不同的类型(按名称,功能,或任何相关的,但独立的仍然)在同一个文件

和我还没有想出了一个很好的理由。

有扩展/加载项到Visual Studio,您可以在相应的名称,并快速定位到该文件,我能想到的三个,但毫无疑问的人:

第一个允许您快速定位到由名称的文件。如果你知道类型,但是让人们将多种类型放入同一类型,那么这根本就没有帮助。

第二个和第三个让您按名称导航到某个类型,但不应该依赖具有这些类型的人或知道如何使用它们。

为此,我会主张遵循以下规则:

  1. 项目的名称应与该项目的根命名空间。我不同于这一点,在某些情况下,我将我的项目命名为“... Core”,然后从命名空间中删除“Core”,否则将项目名称保留为与命名空间
  2. 。项目来建立命名空间层次结构
  3. 类型的名称应该100%对应于文件的名称+任何扩展名适合您的语言。因此,根据语言,“YourType”应该是“YourType.cs”,“YourType.vb”或“YourType.whatever”
+0

+1一些好点 – BrokenGlass 2011-03-18 20:21:31

+1

总是有右键点击“Go To Definition” 。 – 2011-03-18 21:15:14

+0

+1我们将永远拥有巴黎。 – 2011-03-18 21:18:32

5

这取决于你问谁。

我个人觉得更容易阅读,如果他们都在,一如既往地爆发了。然而,编译器并不在乎......所以无论你和你的团队认同什么都会更容易理解。

1

在我看来,避免这种情况是一种很好的做法。有一天,一个开发商将在项目ClassBar可以环顾四周,因为它是嵌套在ClassFoo.cs

工具,比如ReSharper的有一个整洁的功能,您可以只选择一类将不能够很容易地找到它,点击右键,放置在新文件中以使其更容易。

如果你读过任何流行的编码标准(兰斯亨特■设计,框架设计指南等)大多主张每个文件1班。

0
  1. 它讨厌向下滚动和搜索多少个类each.cs文件包含/隐藏。

  2. 同时使用版本控制

  3. 可用性与我们的团队可维护性问题。

检查here更多有趣的讨论。

0

我认为这是不太是否可以或者是否应。对于这样的事情,我觉得最好在代码库的其余部分查看约定。有时顺从会更好,因为它让其他开发人员的工作变得更加轻松,因为每个人都知道事情的发展。

如果是全新的项目,你自己在这里设置的标准,做对你有意义。对我来说,如果结构在相关类之外没有用处,我可以把它们放在同一个文件中。否则,我把它们分开。