传递值和引用之间的区别

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);

如果你想通过引用调用它。