假设我将枚举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 ^之间的含义。 谢谢。
答案 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