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

时间:2014-09-19 19:46:43

标签: c# .net oop

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

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

调用构造函数是否暗示调用构造函数的代码"拥有"对象并不是一个类似文件的情况,其中对象只是将句柄包装到文件系统所拥有的文件中?这是一些OOP约定,.NET / C#约定,还是纯粹是任意的?

3 个答案:

答案 0 :(得分:9)

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

它们基本上是FileStream Constructors的工厂方法, 作为FileStream个实例的构造函数进行处理。

答案 1 :(得分:9)

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

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

答案 2 :(得分:1)

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

相关问题