繁体   English   中英

为什么.NET System.IO.File使用Create / Open而不是构造函数?

[英]Why does .NET System.IO.File use Create/Open instead of a constructor?

System.IO.File没有构造函数。 而是使用Create / Open静态方法。

为什么不使用构造函数创建或打开文件?

调用构造函数是否有些暗示调用构造函数的代码“拥有”对象的情况并不是这样的情况,例如文件,其中对象只包含文件系统所拥有的文件的句柄? 这是一些OOP约定,.NET / C#约定,还是纯粹是任意的?

File.CreateOpen实际上并没有实例化File ,它们返回一个新的FileStream来访问磁盘上文件中的数据。

它们本质上是工厂方法的FileStream构造函数 ,这作为构造函数来处理FileStream实例。

File类是.NET Framework 1.0版的后期添加。 在微软进行可用性研究后添加。 他们邀请以前从未使用过.NET的程序员,并要求他们编写使用FileStream和StreamWriter类的代码。 那些有构造函数的。 成功率为

所以他们提出了File,它有一堆静态帮助方法来创建/打开文件。 将它们视为工厂方法。 不,你不创建文件。 你用吧。 查看您最喜欢的关于静态类的 C#编程语言书。

File只是帮助器类,它为您实例化其他类。 “文件”本身是文件系统上的对象,而不是.NET。 所以你有流,读者, FileInfo等都代表了与文件交互的不同方面。 .NET中的File类只是通往所有这些不同类的网关。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM