当前位置:  开发笔记 > 编程语言 > 正文

C#类在单独的文件中?

如何解决《C#类在单独的文件中?》经验,为你挑选了6个好方法。

我的C#项目中的每个类都应该获得自己的文件(在您看来)?



1> FlySwat..:

虽然每个文件的一个类策略在Java中是严格执行的,但C#并不要求它.但是,这通常是一个好主意.

如果我有一个仅由主类使用的非常小的辅助类,我通常会违反此规则,但为了清楚起见,我更喜欢将其作为嵌套的内部类.

但是,您可以使用partial关键字将单个类拆分为多个文件.这对于将代码与向导生成的代码分开很有用.


也许是因为Java不会强制每个文件使用一个类.这完全是假的.
每个文件包含最多一个PUBLIC顶级类型的定义.您可以在文件中定义任意数量的顶级类型,只要它们具有包私有访问权限即可.根据经验,如果助手仅由公共类使用,则它可以放在同一个文件中.

2> Chris Wenham..:

文件很便宜,你可以通过将许多类合并为单个文件来帮助任何人.

在Visual Studio中,在解决方案资源管理器中重命名文件将重命名该类以及项目中对该类的所有引用.即使您很少使用该功能,文件的便宜性和管理它们的便利性意味着当它除以成本时,利益是无限有价值的.



3> Jon Skeet..:

正如其他人所说,一般每种类型一个文件 - 虽然其他人已经公开/私人区分,但我只是说"每个类型一个顶级文件"(所以即使是顶级内部类型也可以获得自己的文件) .

我有一个例外,它与.NET 3.5中Func和Action委托类型的出现不太相关:如果我在项目中定义了几个委托类型,我经常将它们放在一个名为Delegates.cs的文件中. .

还有其他非常偶然的异常 - 我最近使用了部分类来使几个自动生成的类实现相同的接口.他们已经定义了适当的方法,所以这只是一个写作的例子:

public partial class MessageDescriptor : IDescriptor {}
public partial class FileDescriptor : IDescriptor {}

将所有这些放入自己的文件中会有些愚蠢.

要记住所有这一切:使用ReSharper可以更轻松地访问您的类,无论它们是否在合理命名的文件中.这并不是说正确组织它们并不是一件好事; 这更像是为了强化ReSharper摇滚的观念:)



4> Wes Haggard..:

我个人认为每个类都应该在自己的文件中,这也包括嵌套类型.关于此规则的唯一例外是自定义委托.

大多数答案都排除了此规则中的私有类,但我认为这些也应该在他们自己的文件中.这是我目前用于嵌套类型的模式:

Foo.cs://仅包含Foo实现

public partial class Foo 
{
   // Foo implementation
}

Foo.Bar.cs://仅包含Foo.Bar实现

public partial class Foo
{
  private class Bar
  {
    // Bar implementation
  }
}


+1用于指出一种干净透明的方式,即使是嵌套类型也可以放在自己的文件中.(并不是说我现在必须感到被迫这样做......)

5> Bill the Liz..:

这取决于.大多数时候我会说是的,把它们放在单独的文件中.但是如果我有一个私有帮助器类只能由另一个类(如链接列表的节点或元素)使用,我不建议将它们分开.



6> flukus..:

它们应该在不同的文件中,即使它看起来有点过分.这是我经常犯的错误.

总有一段时间,你已经为一个类添加了足够的代码,它应该拥有它自己的文件.如果你决定在那时为它创建一个新文件,那么你将丢失你的提交历史记录,当你不想要它的时候总会咬你.

推荐阅读
pan2502851807
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有