2012-07-20 87 views
2

我在一次採訪中被問到這個問題,我說答案是託管的。面試官似乎很驚訝。我的問題是即使它訪問文件(本機/非託管資源),但不是這個類管理?或者你認爲我應該有一些後續問題以獲得更多的澄清?FileStream是託管還是非託管代碼?

+0

你應該在回答之前讓他澄清這個問題。這個問題顯然是模糊不清的(IMO)。 – leppie 2012-07-20 08:10:50

+0

是的,我的不好。請記住。謝謝。 – parsh 2012-07-20 08:40:26

回答

1

管理資源據ILSpy ,FileStream包含很多託管代碼,因此您可以爭辯說它是託管的。但是,最終所有文件I/O必須解析爲Win32 P/Invoke調用,因此您可能會認爲它是非託管代碼的包裝。這取決於你的定義。

+0

謝謝,我也這麼認爲,因此表示託管。正如我所說,我應該提出更多的問題來澄清問題。 – parsh 2012-07-20 08:41:46

0

你可以看看這個問題

What is managed and unmanaged code?

從這個討論,我會說,因爲你訪問它的託管代碼,並通過.NET運行時

+0

而且從本地代碼訪問它幾乎是不可能的。 – leppie 2012-07-20 08:14:24

0

通常,由CLR運行的所有代碼都被視爲至少在您的角度進行管理,除此之外,您有Win32 API,ActiveX,COM對象,這些對象都是非託管的。

AS FileStream是.Net的一個類,所以它是一個託管類/對象。但它因爲這個原因無法使用某些窗口資源,所以必須在使用它之後處理它的對象。 。