using System;
namespace Method6
{
    class Test
    {
        //值方法,参数I会重新在堆栈中分配空间,不影响传进时的参数
        static void addi(int i)
        {
            i++;
        }
        //ref 关键字,引用了传进时参考的地址,会影响,[要求:调用前所传参数需要被初始化]
        static void addiref(ref int i)//与OUT不能定义完全相同
        {
            i++;
        }
        //out 关键字,引用了传进时参考的地址,会影响,[要求:调用前所传参数不能被初始化在方法体中初始化]
        static void addiout(out int i)//与REF不能完全定义相同
        {
            i = 0;
            i++;
        }
        static void Main()
        {
            //值调用,得0
            int a = 0;
            addi(a);
            Console.WriteLine(a);
            //ref调用,传参前需初始化,得1
            int b = 0;
            addiref(ref b);
            Console.WriteLine(b);
            //out调用,传参前不要去初始化(因为必须在调用的方法体中初始化),得1
            int c;
            addiout(out c);
            Console.WriteLine(c);
        }
    }
}
posted on 2008-01-20 21:11  glave  阅读(95)  评论(0)    收藏  举报