FileStream是托管代码还是非托管代码?

时间:2012-07-20 08:07:07

标签: .net

我在接受采访时被问到这个问题,我说答案是管理的。面试官似乎很惊讶。我的问题是即使它访问一个文件(本机/非托管资源),但这个类是不是托管?或者您认为我应该有一些后续问题以获得更多澄清?

3 个答案:

答案 0 :(得分:1)

根据ILSpy,FileStream包含大量托管代码,因此您可以认为它是受管理的。但是,最终所有文件I / O必须解析为Win32 P / Invoke调用,因此您可能会认为它是一个非托管代码包装器。这取决于你的定义。

答案 1 :(得分:0)

您可以查看问题

What is managed and unmanaged code?

从讨论开始,我会说它是托管代码,因为您通过.NET运行时访问和管理资源

答案 2 :(得分:0)

通常,CLR运行的所有代码都被视为至少在您的透视图中被管理,在它之外,您有Win32 API,ActiveX,COM对象,这些是非托管的。

AS FileStream是.Net的一个类,所以它是一个托管类/对象。但由于这个原因,它的一些Windows资源是无人管理的,你必须在使用它之后处理它的对象。