是什么的一个对象在托管C

的手柄之间的差

如:

System::String^ str = gcnew System::String();

和普通C ++指针?

此外,他们如何涉及到在C#中,我们有介绍信吗?

有帮助吗?

解决方案

您不是在谈论(旧)托管C ++,但对C ++ / CLI,对吧?

在C#,代码就等于

System.String str=new System.String();

在C ++ / CLI中,对象句柄是一样的,如C#中的参考 - 你有引用计数,垃圾收集器等

普通C ++指针,在另一方面,是(在大多数情况下)的指针非托管对象。你可以(当然)有C ++的指针被管理对象,只要你有在C#中使用指针(不安全的代码)的方式。看这里指针在C#中的详细说明,以及这里关于C ++ / CLI指针的一些细节。这些指针不会被垃圾收集处理。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top