值传递与引用传递

来源:岁月联盟 编辑:exp 时间:2011-09-10

值传递, 只是传递副本, 而引用传递, 是传递一个地址~
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
 
namespace ConsoleApplication10
{
    class Program
    {
        static void Main(string[] args)
        {
            int v = 42;
            int r = 42;
            DoWorkVal(v);
            DoWorkRef(ref r);
            Console.WriteLine("值传递,结果为{0}!",v);
            Console.WriteLine("引用传递,结果为{0}!", r);
        }
 
        static void DoWorkVal(int param)
        {
            param += 10;
        }
 
        static void DoWorkRef(ref int param)
        {
            param += 10;
        }
    }
}
 对于值传递, 只是传递个副本, 因此void的函数没有返回值, 所以在输出v的时候还是原来的值, 没有变化. 对于引用传递, 则是把地址传递过去,  因此在函数DoWorkRef调用后, r也会随着变化, 因此会+10, 所以输出的结果就是52了~

作者“McDelfino”