2010-08-21 38 views
3

我听说过滥用地区的不好之处,但是在向我的课程添加枚举时,我把它们放到了课程末尾的#region "Enums"中,并且在结构甚至子类中执行相同的操作。如何在类中对枚举,结构和子类进行分组?

有没有更好的/标准的方法去分组这样的元素在类上?

(注:这是标记C#/ VB,但也许同样的情况存在其他语言,如Java)

回答

3

当然合理的分组是使用不同的源文件。

对于超过几个屏幕已满的类,您可能应该有一个单独的此类文件的源文件。否则,在源文件中查找各种类和其他项目可能会很困难。

对于语义上相关的枚举集合,每个枚举都足够小以适应屏幕,将它们放入单个文件通常是有意义的 - 但是您应该根据所有目的命名文件这些枚举共享。如果你无法提出一个描述它们共同性的凄美名字,那么这可能表明你应该再次分裂它们。 (当然,这一段同样适用于类和结构,但只有非常小的。)

注意,甚至嵌套类/结构/枚举可以被放置在一个单独的源文件中的C# - 只是声明外类如部分

如果您有一个完整的类层次结构的相关派生类(子类),您甚至可以为每个这样的层次结构创建一个子目录。例如,在名为Collections的子目录中,可能有一个名为CollectionBase.cs的文件用于抽象基类以及每个派生类的单独源文件。

+0

即使它很小,我对直接在名称空间下面的每个类使用一个单独的源文件,并且我的子类通常是小的特定于目标的对象。而且我的大多数枚举只与一个类的一个类或方法有关系。部分类也是VB中的一个选项,这似乎是一个有效的观点。我认为部分类只适用于WPF,+1。 – 2010-08-21 03:20:10

+1

最初发明什么部分类是无关紧要的。这是一个通用功能,您可以在任何有意义的地方使用它。扩展方法和lambda表达式也是如此 - 它们是为LINQ创建的并不重要。 – Timwi 2010-08-21 03:24:59

+0

我只是想知道如何将一个类拆分为文件而不是区域。反对地区的论点对文件有相同的影响。 – 2010-08-21 03:30:00