导入命名空间并使用其层次结构

时间:2014-04-24 18:57:14

标签: c# vb.net visual-studio-2012 reference namespaces

我一直认为包含/导入/使用命名空间会包含它下面的所有命名空间但我在Visual Studio 2012中导入命名空间时遇到问题。

我正在使用VB.net,并且在一个解决方案文件中有两个项目。我正在将一个曾经在P1里面的班级搬到P2里。 P1里面的代码只是“Imports System.Data”,但是在新的项目/类中,我不能说我必须具体说“Imports System.Data.SqlClient”,否则visual studio不知道是什么SqlConnection是

Imports System.Data
'Imports System.Data.SqlClient

Public Class Class1

    Private con As SqlConnection


    Public Function returnInt2() As Integer
        Return 2
    End Function

End Class

我的问题是两次

1.Should“Imports System.Data”还导入“System.data.sqlClient”?

2.是否有人知道为什么我必须具体在我的P2进口而不是P1?

2 个答案:

答案 0 :(得分:1)

不导入命名空间不会导入所有子命名空间。如果你这样做,可能会有成百上千的命名空间。

导入命名空间将允许您访问该特定命名空间的所有子成员。

这里的原因是你必须打包这些命名空间所包含的所有库。因此,如果你曾经导入过每个命名空间,你的二进制文件会变得非常大。

答案 1 :(得分:1)

VB.Net项目允许您指定项目范围的命名空间导入。这些可以在项目财产的参考页面上看到。您的第一个项目P1可能在项目范围内导入System.Data.SqlClient,而P2则没有。