簡體   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