传递值和引用之间的区别
Difference between passing values and reference
我试图了解按值调用和按引用调用之间的区别。有人向我解释说,通过引用更改实际内存位置值,而按值调用仅更改实例(虚拟值)而不是实际实例。所以我试图让那个程序检查值和引用是如何工作的。我的程序不工作,我是否正确地实现了逻辑?
这是已解决的工作代码的修订版本。
static void Main(string[] args)
{
Program pro = new Program();
int i = 1;
Console.WriteLine("Call By Value: ");
pro.byVal(i);
Console.WriteLine(i);
Console.ReadKey();
Console.WriteLine("\n\n\nCall By Reference: ");
pro.byRef(ref i);
Console.WriteLine(i);
Console.ReadKey();
}
public void byVal(int i) //******* Call by Value *******//
{
i = 2;
}
public void byRef(ref int i) //******* Call by Refrence *******//
{
i = 3;
}
您需要更改调用方式
byRef(i);
至
byRef(ref i);
如果你想通过引用调用它。
我试图了解按值调用和按引用调用之间的区别。有人向我解释说,通过引用更改实际内存位置值,而按值调用仅更改实例(虚拟值)而不是实际实例。所以我试图让那个程序检查值和引用是如何工作的。我的程序不工作,我是否正确地实现了逻辑?
这是已解决的工作代码的修订版本。
static void Main(string[] args)
{
Program pro = new Program();
int i = 1;
Console.WriteLine("Call By Value: ");
pro.byVal(i);
Console.WriteLine(i);
Console.ReadKey();
Console.WriteLine("\n\n\nCall By Reference: ");
pro.byRef(ref i);
Console.WriteLine(i);
Console.ReadKey();
}
public void byVal(int i) //******* Call by Value *******//
{
i = 2;
}
public void byRef(ref int i) //******* Call by Refrence *******//
{
i = 3;
}
您需要更改调用方式
byRef(i);
至
byRef(ref i);
如果你想通过引用调用它。