【问题标题】:What it mean: String^ name含义:字符串^名称
【发布时间】:2013-10-22 14:05:03
【问题描述】:

这是什么意思:String^ var_name?我只能在 CLR C/C++ 中做到这一点。而且我知道^ 是异或。

有什么区别:

`string name` and `String^ name`?

【问题讨论】:

  • 在 CLR 和 C++/CLI 的上下文中,^ 不是 XOR,它是一个托管引用(或者类似的东西,我真的不知道这个 MS 的东西)。
  • 如果有人指出 String^ name 不是 C++,那就太好了。

标签: string c++-cli clr difference


【解决方案1】:

它是对象操作符的句柄。它声明了一个托管指针。

它们看起来像普通指针,但您不必释放它们。

来自here

句柄声明符(^,发音为“hat”)修改类型说明符以表示当系统确定对象不再可访问时应自动删除声明的对象

使用句柄声明符声明的变量的行为类似于指向对象的指针。

【讨论】:

    【解决方案2】:

    它是一个托管指针,即一个被垃圾回收的指针。将它们视为普通指针,但您不必释放它们。

    您必须使用gcnew 显式分配这些指针,而不是new

    【讨论】:

      【解决方案3】:

      String^ 是托管字符串。 ^ 运算符表示该变量是托管引用。

      【讨论】:

        【解决方案4】:

        它实际上是一个指向托管堆对象的堆指针/句柄。它是一个没有附加可见类型的指针或索引。

        查看这些链接。 Heap , How to Declare Handle

        【讨论】:

        • 我明白了。是一个带有“garbage-collector”的指针,不引用其他东西,只引用他自己。
        猜你喜欢
        • 2016-10-04
        • 1970-01-01
        • 2018-11-20
        • 1970-01-01
        • 1970-01-01
        • 2022-01-17
        • 1970-01-01
        相关资源
        最近更新 更多