我想知道为什么File类是静态的?
有些方法是静态的,比如Create。但是,当我想要移动一个文件时,我希望只指定新的位置。同样的情况也适用于Copy、Open等。我猜想这个问题已经在某个地方讨论过了,但是搜索并没有给出任何结果,只是给出了为什么要创建静态方法的一般线索。
我并不是说File中的所有方法都不应该是静态的,但是确实有一些方法应该与实例相关。
发布于 2013-12-31 14:37:37
有FileInfo类,它具有像CopyTo或MoveTo这样的实例方法。但是,如果您在文件上执行单个操作,那么使用File类的静态方法而不是创建实例FileInfo对象会更有效。如果要执行多个操作,则创建FileInfo将允许跳过其他安全检查。实际上,File是一种服务,可以操纵文件。也许类名不是最好的名字。
发布于 2013-12-31 14:39:52
File是静态的,可能是因为File只关心创建到(物理)文件的(逻辑)内容的连接。另一方面,FileStream不是静态的,因为它表示可以从文件中读取的数据。将File看作是指地址,其中FileStream将重点放在所述地址的内容上。如果考虑到物理容器和逻辑内容之间的分离,这种分离开始变得更有意义--对容器的单例访问,但是对您所附加的每个容器的内容的个性化访问。
https://stackoverflow.com/questions/20858832
复制相似问题