【发布时间】:2019-11-08 07:30:35
【问题描述】:
只是想看看是否有人可以帮助我理解这一点:
下面这两个例子在用法上有什么区别?第二个什么时候通过引用传递参数更好?两者都输出相同的结果。
public static void Sqr(int x)
{
x = x * x;
Console.WriteLine(x);
}
static void Main(string[] args)
{
Sqr(3);
}
2)
public static void Sqr(ref int x)
{
x = x * x;
}
static void Main(string[] args)
{
int a = 3;
Sqr(ref a);
Console.WriteLine(a);
}
有人知道吗?我在这里一无所知。我的问题是,我什至不知道为什么事情是这样写的!!有什么见解吗?
【问题讨论】:
-
有趣的实验:在
Main的第二个实现中尝试Sqr的第一个实现(你需要在Sqr(ref a)的调用中删除ref)。保持其他一切完全相同。运行。应该有两行的输出。第一个来自Sqr方法内部,第二个来自Main方法内部,在调用Sqr之后。比较这两个输出并说明为什么它们是这样的。尤其是与仅第二个实现相比时。
标签: c# methods parameter-passing