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

时间:2013-12-31 14:36:15

标签: c# .net file file-io

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

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

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

2 个答案:

答案 0 :(得分:8)

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

答案 1 :(得分:0)

File可能是静态的,因为File仅关注创建与(物理)文件的(逻辑)内容的连接。另一方面,FileStream不是静态的,因为它表示可以从文件中读取的数据。可以认为File指的是一个地址,其中FileStream关注地址所述地址的内容。如果你考虑物理容器和逻辑内容之间的分离,分离开始变得更有意义 - 单例访问容器,但个性化访问你附加的每个容器的内容。