我想知道为什么File
类是静态的?
有些方法像Create
一样是静态的。
但是,当我想移动文件时,我更喜欢指定新位置。这同样适用于Copy
,Open
等。我猜这个问题已经在某个地方讨论过了,但搜索没有给出任何结果,只是为什么要创建静态方法的一般线程。
我没有说File
中的所有方法都不应该是静态的,但确实存在与实例相关的方法。
答案 0 :(得分:8)
FileInfo
类包含CopyTo
或MoveTo
等实例方法。但是如果您在文件上执行单个操作,那么使用File
类的静态方法而不是创建实例FileInfo
对象会更有效。如果您正在执行多个操作,则创建FileInfo
将允许跳过其他安全检查。实际上File
是一种操纵文件的服务。也许班级名称不是最好的。
答案 1 :(得分:0)
File
可能是静态的,因为File
仅关注创建与(物理)文件的(逻辑)内容的连接。另一方面,FileStream
不是静态的,因为它表示可以从文件中读取的数据。可以认为File
指的是一个地址,其中FileStream
关注地址所述地址的内容。如果你考虑物理容器和逻辑内容之间的分离,分离开始变得更有意义 - 单例访问容器,但个性化访问你附加的每个容器的内容。