![](/img/trans.png)
[英]Xamarin - System.IO.File - namespace 'File' does not exist
[英]Why does .NET System.IO.File use Create/Open instead of a constructor?
System.IO.File没有构造函数。 而是使用Create / Open静态方法。
为什么不使用构造函数创建或打开文件?
调用构造函数是否有些暗示调用构造函数的代码“拥有”对象的情况并不是这样的情况,例如文件,其中对象只包含文件系统所拥有的文件的句柄? 这是一些OOP约定,.NET / C#约定,还是纯粹是任意的?
File.Create
和Open
实际上并没有实例化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.