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

JDi*_*teo 3 .net c# oop

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

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

调用一个构造函数是否有些暗示调用构造函数的代码"拥有"该对象,而对于一个文件,其中对象只包含文件系统所拥有的文件的句柄?这是一些OOP约定,.NET/C#约定,还是纯粹是任意的?

Ree*_*sey 9

File.Create并且Open实际上没有实例化a File,它们返回一个新的FileStream用于访问磁盘上文件中的数据.

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


Han*_*ant 9

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

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