回 帖 发 新 帖 刷新版面

主题:[讨论]请教一个小问题,两个语句有何区别?

请教一个小问题,两个语句有何区别?

想请前辈们指点一下,下边的两个语句有何区别?
System.IO.Directory.CreateDirectory("C:\FDM\A\")

Dim fileB As System.IO.DirectoryInfo
fileB = System.IO.Directory.CreateDirectory("C:\FDM\B\")

回复列表 (共3个回复)

沙发

XXInfo和XX本来就有很多相似的地方。
各自偏重点不同。

板凳

其实这两个语句都是执行了Directory.CreateDirectory方法来创建目录,只不过第2个语句返回了值,下面是.net中对Directory.CreateDirectory方法的定义:

Public Shared Function CreateDirectory( _
   ByVal path As String _
) As DirectoryInfo

可以看到他是一个有返回值的,而且返回值的类型是DirectoryInfo

我把第二个语句改写一下,下面的语句才是真正与第一条语句不同的
Dim fileB As System.IO.DirectoryInfo("C:\FDM\B\")
fileB.Create()

下面是msdn中对这两个的区别的描述:

由于所有的 Directory 方法都是静态的,因此如果只想执行一个操作,使用 File 方法的效率比使用相应的 DirectoryInfo 实例方法可能更高。大多数 Directory 方法要求当前操作的目录的路径。
Directory 类的静态方法对所有方法都执行安全检查。如果打算多次重用某个对象,可考虑改用 DirectoryInfo 的相应实例方法,因为并不总是需要安全检查。


3 楼

谢谢你的详细说明

我来回复

您尚未登录,请登录后再回复。点此登录或注册