[英]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.