gpt4 book ai didi

c# - 对在 C# 中通过 ref/value 传递感到困惑

转载 作者:太空宇宙 更新时间:2023-11-03 19:56:32 25 4
gpt4 key购买 nike

由于我仍在学习 C#,因此标题中的某些内容还没有被我理解,以下是一些非常基本的代码,我使用它们只是为了掌握它。

    [TestMethod]
public void Pass()
{
int x = 4;
Increment(x);
Assert.AreEqual(5, x);
}
void Increment(int num)
{
num++;
}

我知道如果我在其中添加 ref 就可以正常工作,但是我发现使用它并不总是最好的情况。我可以做什么而不是使用 ref,为什么?

最佳答案

  1. 不要改变调用者的状态。返回新的int值作为返回值。通常要避免状态突变。
  2. 如果可用,继续使用 ref。除了状态突变问题,它没有任何问题。
  3. 使用堆上的对象,例如class IntHolder { int MyInt; }StrongBox<int>这是内置的。

如果您告诉我们更多背景信息,我们可以推荐特定的解决方案。

关于c# - 对在 C# 中通过 ref/value 传递感到困惑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33136581/

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