这是什么意思:String^ var_name
?我只能在CLR C / C ++中这样做。我知道^
是异或。
有什么区别:
`string name` and `String^ name`?
答案 0 :(得分:2)
它是对象操作符的句柄。它声明了一个托管指针。
它们看起来像普通指针,但你不必释放它们。
来自here:
句柄声明符(
^
,发音为“hat”),修改类型说明符,表示当系统确定对象不再是声明的对象应自动删除访问。使用句柄声明符声明的变量的行为类似于指向对象的指针。
答案 1 :(得分:1)
它是一个托管指针,即一个垃圾收集的指针。将它们视为正常指针,但您不必释放它们。
您必须使用gcnew
明确分配这些指针,而不是new
。
答案 2 :(得分:0)
String ^是托管字符串。 ^运算符表示变量是托管引用。
答案 3 :(得分:0)
它实际上是托管堆对象的堆指针/句柄。它是一个没有可见类型的指针或索引。
检查这些链接。 Heap,How to Declare Handle