目前,如果我有不同的类包含函数等,我会在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
这样的文件中,以便更容易找到类?或者有更好,更标准的方法吗?
答案 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文件的逻辑相关的代码包。
此操作的可行性,有效性或多脏性显然是值得商榷的,但设施确实存在,因此您需要了解此分区选项可能有多好或有多么有用?证明是。