gpt4 book ai didi

c# - 在 C++/CLI 代码中传递的参数中,^ 符号是否替换了 C#'s "ref"?

转载 作者:IT王子 更新时间:2023-10-29 04:42:20 25 4
gpt4 key购买 nike

在 C# 中,通过引用传递是:

void MyFunction(ref Dog dog)

但在我目前看到的 C++/CLI 代码示例中,没有使用 ref 而是使用了 ^ 符号:

void MyFunction(Dog ^ dog)

参数传递时使用^符号是不是可以直接代替ref?还是有其他我不知道的含义?

附加问题:我也看到了很多:

Dog ^ myDog = gcnew Dog();

它看起来像 C++ 中的 *(指针)一样使用。它的工作方式类似吗?

谢谢!

最佳答案

如果Dog是引用类型(在 C# 中为 class),则 C++/CLI 等效项为:

void MyFunction(Dog^% dog)

如果Dog是值类型(在 C# 中为 struct),则 C++/CLI 等效项为:

void MyFunction(Dog% dog)

作为类型装饰器^大致对应于 *在 C++ 中,和 %大致对应于 &在 C++ 中。

作为一元运算符,您通常仍需要使用 *在你使用 * 的 C++/CLI 中在 C++ 中,但您通常需要使用 %在你使用 & 的 C++/CLI 中在 C++ 中。

关于c# - 在 C++/CLI 代码中传递的参数中,^ 符号是否替换了 C#'s "ref"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6616599/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com