【发布时间】:2018-12-06 23:53:36
【问题描述】:
我在 MyRefClass.h 中声明了一个类
public ref class MyRefClass{
....
....
};
这三个对象在何处/如何分配和管理有什么区别?
// This is allocated in **C++/CLI**.
MyRefClass ^mrc = gcnew MyRefClass();
MyRefClass *mrc2 = new MyRefClass;
// If allocated in **C#**
MyRefClass mrc3 = new MyRefClass()
如果这个问题太愚蠢,请原谅我。我是 C# 和 C++/CLI 的新手。
【问题讨论】:
-
gcnew 和 ^ 帽子只是提醒您不再在堪萨斯州。托管对象在运行时的行为不同,这是您始终需要注意的事情。它是 not 任意的,您不能在 ref 类上使用 new 和 *。为 C++ 语言配备一个积极的垃圾收集器确实迫使他们明确说明你的想法,当你还不能下定决心时,就会发生非常糟糕的事情。一定要遵循一本像样的教程或入门书籍。
标签: c# c++-cli unmanaged managed-code