【问题标题】:naming folders in nested classes在嵌套类中命名文件夹
【发布时间】:2011-07-27 11:43:09
【问题描述】:

如果我们有以下情况:

namespace SomeNameSpace
{
    public class Class1
    {
        private class NestedClass1 
        {
            // NestedClass1 implementation
        }

        private class NestedClass2 
        {
            // NestedClass1 implementation
        }
    }

    public class Class2
    {
        // so on ...
    }
}

为嵌套类组织文件夹和文件的最佳方式是什么?

首先,我们有文件夹“SomeNameSpace”。 然后文件“Class1.cs,Class2.cs,...”。

考虑在“Class1”中嵌套类。 创建文件“Class1.NestedClass1.cs,...”并将它们放在文件夹 SomeNameSpace 中是否正确?

或者创建一个新的文件夹,那么它应该有什么名字,可能是因为它看起来像新的命名空间而不是正确的方式?

【问题讨论】:

  • 为什么有嵌套类?
  • 当你有嵌套类时,它们与其封闭类在同一个文件中,除非它们驻留在部分类中。什么意思?
  • 是的,分部类中有几个嵌套类。现在我可以看到这是因为糟糕的架构。尽管如此,可能会出现这种情况并且代码很多,所以我认为将这些类移动到单独的文件中会更好。

标签: c# class file nested


【解决方案1】:

通常嵌套类在某种程度上被认为是不好的做法,但有时您确实需要它们。如果状态是可以访问其上下文的私有方法的嵌套类,那么实现状态模式通常会容易得多。

如果我有多个嵌套类或一个嵌套类会弄乱其父类的代码,我倾向于创建单独的文件,例如 Class.Subclass.cs。在这种情况下,当然必须将 Class 声明为 partial。

但这只是我的个人意见,请按照您/您的团队最喜欢的方式去做。

【讨论】:

  • 谢谢。这是个好主意。有一个 link 带有在项目属性中使用 进行可视化的提示。
  • 是的,我也使用它。太糟糕了,您不能直接在 Visual Studio 中执行此操作。
【解决方案2】:

鉴于你的例子,我个人会相应地命名它们:

  • Class1.cs
  • Class1.NestedClass1.cs
  • Class1.NestedClass2.cs
  • Class2.cs

【讨论】:

    猜你喜欢
    • 2018-03-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-01-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多