为什么System.IO.File类是静态的

And*_*ker 1 .net c# file-io file

我想知道为什么这个File类是静态的?

有一些方法可以像静态一样有意义Create.但是,当我想移动文件时,我更喜欢指定新位置.这同样适用于Copy,Open甚至更多.我猜这个问题已经在某个地方讨论过了,但搜索没有给出任何结果,只是为什么要创建静态方法的一般线程.

我不是说所有的方法File都不应该是静态的,但确实存在应该与实例相关的方法.

Ser*_*kiy 8

FileInfo类具有像CopyTo或的实例方法MoveTo.但是如果你在文件上执行单​​个操作,那么使用File类的静态方法而不是创建实例FileInfo对象会更有效.如果您正在执行多个操作,则创建FileInfo将允许跳过其他安全检查.实际上File是一种操纵文件的服务.也许班级名称不是最好的.

  • 确实,如果OP只是[阅读文档](http://msdn.microsoft.com/en-us/library/system.io.file(v = vs.100).aspx),他会发现这个: "File类的静态方法对所有方法执行安全检查.如果要多次重用对象,请考虑使用FileInfo的相应实例方法,因为安全检查并不总是必要的" (3认同)
  • 我不知道班级存在.对于这样一个班级来说,这是一个奇怪的名字 (2认同)