对于某些枚举E,E和E ^有什么区别? (C ++ / CLI)

时间:2019-09-27 15:44:46

标签: .net c++-cli

假设我将枚举E定义如下:

#pragma managed

namespace MyNamespace
{
  public enum class E
  {
    X = 0,
    Y = 1,
    Z = 2
  };
}

以下两个方法签名有什么区别?

#pragma managed

namespace MyNameSpace
{
  public MyClass
  {
      public void method1(E an_enum) {}

      public void method2(E^ an_enum) {}
   };
}

我试图理解使用E与E ^之间的含义。 谢谢。

1 个答案:

答案 0 :(得分:0)

'hat'运算符是指针的C ++ / CLI版本。 而不是传递它传递的值,而是传递对象在内存中的位置。 它的行为就像一个指针,但允许.Net跟踪您的对象。如果发现不再跟踪该对象,则垃圾收集器将删除该对象。

有关“帽子”运算符的更多信息: https://docs.microsoft.com/en-us/cpp/extensions/handle-to-object-operator-hat-cpp-component-extensions?view=vs-2019