My.Computer.FileSystem和System.IO.File之间究竟有什么区别

Mat*_*lko 8 .net vb.net coding-style namespaces visual-studio

My.Computer.FileSystemSystem.IO.File名称空间中有很多重复的函数.

那究竟是什么区别:

My.Computer.FileSystem.CopyFile(source, dest, True)
Run Code Online (Sandbox Code Playgroud)

和:

System.IO.File.Copy(source, dest, True)
Run Code Online (Sandbox Code Playgroud)

有性能差异吗?每个人对于阅读能力有哪些优势的看法是什么?我个人使用My.Computer命名空间,但这只是习惯.

Pau*_*sik 10

我的.*只是为VB.NET实现的一组Facade模式类,包含常见的System.IO*(和其他)操作.有一个非常,因为你通过额外的抽象层去微小的性能损失,但你必须决定它是否值得优化了点.我建议使用对你和你店里的其他人有意义的方式.

如果检查My.Computer.FileSystem.CopyFile.NET Reflector 的代码,您将看到该方法包装了许多System.IO类,如File和Directory,尤其是File类的Copy,Move和Delete方法.片段:

'lots of other code snipped out for brevity and to show the use of System.IO classes...

Directory.CreateDirectory(FileSystem.GetParentPath(str))

   'snip

    If 
       ' snip
    Else
        File.Delete(str)
        File.Move(path, str)
    End If
Else
    File.Move(path, str)
End If
End Sub
Run Code Online (Sandbox Code Playgroud)