在C中创建.NET对象的实例与托管和非托管之间有什么区别.也就是说,这些声明之间的区别是什么:
StreamWriter ^stream = gcnew StreamWriter(fileName);
与
StreamWriter *stream = new StreamWriter(fileName);
我的假设是,如果我使用gcnew,为StreamWriter分配的内存将由垃圾收集器管理.或者,如果我使用指针(*)和new关键字,我将不得不调用delete来释放内存.
我真正的问题是:垃圾收集器是否会管理在.NET对象内部分配的内存?例如,如果.NET对象实例化另一个对象,并且它超出范围 – 即使我使用指针(*)和new关键字而不是gcnew和handle(^),垃圾收集器是否会管理该内存.