Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/list/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vb.net 导入命名空间与导入选定类_Vb.net_Namespaces - Fatal编程技术网

Vb.net 导入命名空间与导入选定类

Vb.net 导入命名空间与导入选定类,vb.net,namespaces,Vb.net,Namespaces,我正在从事一个项目,在这个项目中,我有一个类库,其中包含大约50个不同的类。在我的应用程序中,导入特定表单或模块所需的特定类更好,还是只导入整个命名空间更好,即使我只需要几个类?在整个应用程序开发过程中,我将全部使用它们,但在每个表单或模块中只使用少数几个 例如: Imports ProjectClasses 'This namespace has approx 50 classes with in it Public Class formMain Private Sub Form1_Lo

我正在从事一个项目,在这个项目中,我有一个类库,其中包含大约50个不同的类。在我的应用程序中,导入特定表单或模块所需的特定类更好,还是只导入整个命名空间更好,即使我只需要几个类?在整个应用程序开发过程中,我将全部使用它们,但在每个表单或模块中只使用少数几个

例如:

Imports ProjectClasses 'This namespace has approx 50 classes with in it

Public Class formMain
  Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    Dim objProject = New CProject
    Dim objElement = New CElement
  End Sub
只导入特定类与导入整个命名空间是否更好

Imports ProjectClasses.CProject
Imports ProjectClasses.CElement

Public Class formMain
  Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    Dim objProject = New CProject
    Dim objElement = New CElement
  End Sub

听起来答案应该是两者都不是。您的库可能应该按区域/项目/功能进行细分,然后您应该导入特定项目所需的任何内容


如果这不可行,那么导入整个名称空间——如果这导致问题,您可能选择了一些错误的类名。

最好的方法可能是为您将要使用的每个类创建重写。并使用那些没有名称空间前缀的(因为它们无论如何都将在您当前的范围内)。如果您计划使用多个,可以将它们划分为功能组

使用这种方法,如果您决定引入新功能,您只需要做一次。此外,如果控件供应商决定更改其工作方式,则可以添加兼容层,以便旧代码在升级到新版本时不会中断。所有这些都在代码的一个位置完成


当然,这取决于你将在这个项目上工作多长时间,它有多复杂,如果你的供应商是你自己等等。

导入整个名称空间与只导入选定的类相比,性能会受到影响吗?@NativeNevadan:不,这都发生在编译时,不可能达到性能要求。我不确定我是否理解覆盖部分。我试图找出是导入整个名称空间(其中包含许多类)更好,还是只导入特定表单的单个类更好。此类库仅适用于此项目。我是应用程序和库的作者。导入太多的类是否会影响性能,即使它们没有以那种形式或模式使用?@NativeNevadan:如果都是你的,只是这个项目,你可以忽略我的建议。引用整个名称空间不会对性能造成任何影响。您只需要关心名称冲突和
Intellisense
中的混乱。