我一直认为包含/导入/使用命名空间会包含它下面的所有命名空间但我在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?
答案 0 :(得分:1)
不导入命名空间不会导入所有子命名空间。如果你这样做,可能会有成百上千的命名空间。
导入命名空间将允许您访问该特定命名空间的所有子成员。
这里的原因是你必须打包这些命名空间所包含的所有库。因此,如果你曾经导入过每个命名空间,你的二进制文件会变得非常大。
答案 1 :(得分:1)
VB.Net项目允许您指定项目范围的命名空间导入。这些可以在项目财产的参考页面上看到。您的第一个项目P1可能在项目范围内导入System.Data.SqlClient,而P2则没有。