关于VB.NET 的 imports 语句。

时间:2022-08-10 00:01:23
关于 VB.NET 的 Imports 语句,在下有点不解。
看很多原码示例,很多都有用 Imports  来声明空间元素。
例如:Imports System.DateTime
但我今天试了一下,不用 Imports 声明一样可以使用。

我在没有使用 Imports System.DateTime 的情况下
直接在过程中 Msgbox(System.DateTime.MaxValue) 一样可以得出值。

是不是不需要用 Imports 声明空间元素也可以?

5 个解决方案

#1


你用了 Imports System.DateTime 
Msgbox(System.DateTime.MaxValue)就可以改成Msgbox(MaxValue)

这样做的主要目的就是希望能减少代码长度,但是这样做的前提是你对所导入的命名空间很熟悉,已经知道命名空间中包含什么类型成员
我以前就遇到过这样的代码
dim fs as new FileStream("c:\a.dat")
....
但是我完全不知道FileStream这个类型是从哪个命名空间来的,"查找类型定义"后才知道属于System.IO这个命名空间 
所以我在不熟悉的情况下宁愿使用这样的语句
dim fs as new System.IO.FileStream("c:\a.dat")或dim fs as new IO.FileStream("c:\a.dat")
....

有几点需要你注意
Imports主要针对导入命名空间 ,不要导入类型,DateTime就是类型,建议不要这样做
如在你方才代码的基础上,加上这样的语句
Imports System.Int32(它也具有MaxValue这个静态字段)
从智能感知上看出,Msgbox(MaxValue)这句它所引用的MaxValue将会是Int32这个类型的MaxValue
这影响了代码的可读性,实际上编译这段代码编译器会报错.因为它无法知道MaxValue是从哪来的

还有,在VB.NET中 System命名空间是被默认导入的,所以加不加Imports System这样的语句对当前代码是无区别的

#2


你在工程右键--属性--左边点引用,下面--导入命名空间--把要导入的选上,Imports就可以不用了。

#3


谢谢1楼的大大  解释的真详细

#4


imports vb=m.vb这样可以缩短键入的代码.提高效率
有些命名空间是默认加载的.

#5


不错!解释的很好,很有帮助!

#1


你用了 Imports System.DateTime 
Msgbox(System.DateTime.MaxValue)就可以改成Msgbox(MaxValue)

这样做的主要目的就是希望能减少代码长度,但是这样做的前提是你对所导入的命名空间很熟悉,已经知道命名空间中包含什么类型成员
我以前就遇到过这样的代码
dim fs as new FileStream("c:\a.dat")
....
但是我完全不知道FileStream这个类型是从哪个命名空间来的,"查找类型定义"后才知道属于System.IO这个命名空间 
所以我在不熟悉的情况下宁愿使用这样的语句
dim fs as new System.IO.FileStream("c:\a.dat")或dim fs as new IO.FileStream("c:\a.dat")
....

有几点需要你注意
Imports主要针对导入命名空间 ,不要导入类型,DateTime就是类型,建议不要这样做
如在你方才代码的基础上,加上这样的语句
Imports System.Int32(它也具有MaxValue这个静态字段)
从智能感知上看出,Msgbox(MaxValue)这句它所引用的MaxValue将会是Int32这个类型的MaxValue
这影响了代码的可读性,实际上编译这段代码编译器会报错.因为它无法知道MaxValue是从哪来的

还有,在VB.NET中 System命名空间是被默认导入的,所以加不加Imports System这样的语句对当前代码是无区别的

#2


你在工程右键--属性--左边点引用,下面--导入命名空间--把要导入的选上,Imports就可以不用了。

#3


谢谢1楼的大大  解释的真详细

#4


imports vb=m.vb这样可以缩短键入的代码.提高效率
有些命名空间是默认加载的.

#5


不错!解释的很好,很有帮助!