在类中构造一个类?

时间:2011-06-03 09:46:51

标签: asp.net vb.net class

目前,如果我有不同的类包含函数等,我会在1个VB文件中构建它们,标题为主类是什么。例如:

MainClass.vb:

Class MainClass

     Function FunctionA() as String
        ...
     End Function

     Class SubClass

          Function SubFunction() as String
              ....
          End Function

          Class SubSubClass

               ......

          End Class

      End Class

End Class

然而,这个问题是文件可能会变成1000行,很难找到部分代码。

有没有办法可以将SubClass存储在MainClass.SubClass.vb这样的文件中,以便更容易找到类?或者有更好,更标准的方法吗?

3 个答案:

答案 0 :(得分:3)

至少C#理解“partial classes”您可以将代码分布在多个文件中(在同一个程序集中)

修改
我希望VB也有部分类(我只在C#中工作),但正如评论中所指出的,它确实有它们。

在C#中,我可以编写如下代码:

文件MainClass.cs:

public partial class MainClass  // note the "partial" keyword
{
   // some method declarations etc.
}

文件MainClass.SubClass.cs:

public partial class MainClass // have to repeat this to hook up correctly
 // but an "Implements" or "Extends" could be different
{
   // maybe some other methods

   private class SubClass
   {
      // etc.
   }
}

但真正的问题是:那些子类真的需要是“MainClass”的内部类,还是它们本身可能是顶级类?

答案 1 :(得分:2)

您应该使用多个类和命名空间来存储和使用您的代码,而不是将所有类打包成一个类。特别是对于较大的项目,这可以帮助您组织代码。

注意:命名空间的名称可能与类之一不同。但是您可以为多个类使用相同的命名空间。

创建“MainClass.vb”

创建“SubClass.vb”

代码“SubClass.vb”

    Namespace Main

        Public Class SubClass

            Function SubFunction() as String
                ....
            End Function

        End Class

    End Namespace

因此您可以通过“Main.SubClass”访问Class SubClass 如果你有很多类和文件,你可以为每个命名空间创建一个SubFolder

主要
| - SubMain
| --- | - SubSubMain
| - AnotherSubMain
| --- | - SubAnotherSubMain

使用命名空间 “主要” “Main.SubMain” “Main.SubMain.SubSubMain” “Main.AnotherSubMain” 等

要存储经常或常用的常规功能,您还可以创建一个库项目。

答案 2 :(得分:2)

是的,vb.net中的部分课程将允许您完全按照您的要求进行操作。

<强> MainClass.vb

Partial Class MainClass

     Function FunctionA() as String
        ...
     End Function

End Class

<强> MainClass.SubClass.vb

Partial Class MainClass

   Class SubClass
      Function SubFunction() as String
          ....
      End Function
   End Class

End Class

撇开重新架构和重新分解的问题,这不是你问的问题,使用一个非常大的类文件,被描述为1000多行,可能会有一些额外的快速修复好处,使用更多部分类文件以实现关注点分离。使用Partial将笨重的类文件拆分为跨多个较小的.vb文件的逻辑相关的代码包。

此操作的可行性,有效性或多脏性显然是值得商榷的,但设施确实存在,因此您需要了解此分区选项可能有多好或有多么有用?证明是。

http://en.wikipedia.org/wiki/Partial_class