如果我自定义一个类:MySingleLogin
实例化以后它是托管对象还是非托管对象呢?
MySingleLogin alInfo = new MySingleLogin();
只要是由.NET分配了内存的对象都属于托管对象,也就是托管到GC,到时GC会自动释放这些资源
托管是不是都实现了IDispose接口了呢? 我的意思都可以使用using来控制对象自动回收呢?
@skybirdzw:
实现了IDispose的类,使用using之后会自动释放对象,也就是说实现了IDispose可以自由控制什么时候释放,当对象没释放,会由GC统一回收
@根总: 不好意思啊,我问的不是using和IDispose的作用,我的意思是.NET中的托管对象是不是都已经实现了IDispose接口?
@skybirdzw:
前面我说过了呀。
只要是由.NET分配了内存的对象都属于托管对象,实现了IDispose是为了可以自由控制什么时候释放
并不是所有的托管对象都会去实现IDispose,比如int,string这些类型,都是托管对象,它们都没有实现IDispose
@根总: 只要是由.NET分配了内存的对象都属于托管对象,那非托管对象是不是没有分配了内存的对象呢?
非托这对象是指.net包装操作系统一些资源,比发FileStream文件流就是一个非托管资源,他要手动去关闭流,GC不会帮你回收
托管对象,一般我们定义的class,都是托管的,.net framework中有1500个类,但是只有100多个是非托管的,其他的都是托管的对象