【发布时间】:2016-11-14 09:18:24
【问题描述】:
我试图了解按值调用和按引用调用之间的区别。有人向我解释说,通过引用改变了实际的内存位置值,而按值调用只是改变了实例(虚拟值)而不是实际的。所以我试图让那个程序检查值和参考是如何工作的。我的程序不工作,我是否正确地实现了逻辑?
这是已解决和工作代码的修订版。
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;
}
【问题讨论】:
-
这段代码真的可以编译吗?
-
“我的程序不工作”是什么意思?你想达到什么目标?请参考这篇文章:msdn.microsoft.com/en-us/library/0f66670z.aspx
-
是的@MongZhu
-
我得到一个编译器错误:
An object reference is required for the non-static field, method, or property 'testproj.Program.byVal(int)' -
创建类文件对象,然后通过该对象调用方法。这是修改后的版本:
标签: c# visual-studio-2010 pass-by-reference pass-by-value