我在一次面试中被问到这个问题,我说答案是有管理的。面试官似乎很惊讶。我的问题是,即使它访问一个文件(本机/非托管资源),但这个类不是托管的吗?或者你认为我应该有一些后续的问题,以获得更多的澄清?
发布于 2012-07-20 16:12:13
根据ILSpy的说法,FileStream包含大量的托管代码,因此您可能会认为它是托管的。但是,所有文件I/O最终都必须解析为Win32 P/Invoke调用,因此您可能会认为它是非托管代码的包装。这取决于你的定义。
发布于 2012-07-20 16:20:50
通常,由CLR运行的所有代码都被认为是托管的,至少从你的角度来看,在它之外,你有Win32 API,ActiveX,COM对象,这些都是非托管的。
因为FileStream是.Net的一个类,所以它是一个托管类/对象。但是它使用了一些windows资源,因此它没有被管理,并且你必须在使用它之后清除它的对象。。
发布于 2012-07-20 16:09:59
https://stackoverflow.com/questions/11575339
复制相似问题