gpt4 book ai didi

c# - 参数真的按值传递吗?

转载 作者:行者123 更新时间:2023-11-30 14:48:54 26 4
gpt4 key购买 nike

<分区>

我正在阅读 John Skeet 的书“C# in Depth”。他在第 74 页上说,每个人都假设参数通过引用传递给函数,同时它通过值传递,并且作为示例,他展示了这段代码,必须证明调用代码中的 StringBuilder 没有改变。同时在我们的函数内部 StringBuilder 实例发生了变化。

private static void SayHello(StringBuilder s)
{
s.AppendLine("Hello");
}

但我的实验表明 StringBuilder 对象发生了变化——我们将在控制台中看到“Hello”。这里有什么问题?或者我对这个例子的理解有什么问题?

       private static void Main(string[] args)
{
var s = new StringBuilder();
Console.WriteLine(s.ToString());
SayHello(s);
Console.WriteLine(s.ToString());
Console.ReadLine();
}

private static void SayHello(StringBuilder s)
{
s.AppendLine("Hello");
}

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