黑马程序员_out和ref

namespace _39.out_ref
{
    class Program
    {
        static void Main(string[] args)
        {
            int number;// = 10; 如果没有out,必须给number赋值
            int result = Test(out number);
            Console.WriteLine("number={0},result={1}", number, result);
            Console.ReadKey();
        }
        
    
        static int Test(out int a)//由out修饰的参数是往外传出值的,方法的参数中有out,那么调用此方法时,也需要在参数前面加out。
        {                         //通过out将a和number联系起来,就是a给number赋值。这就是通过参数返值。
            a = 20;//由out修饰的参数,必须先赋值。
            return 200;
        }
        
    }
}

 

namespace _39._1练习
{
    class Program
    {
        static void Main(string[] args)
        {
            int[] nums = { 1,2,3,4,5,6,};
            int max1, min1, sum1;
            sum1 = compute(nums,out max1,out min1);
            Console.WriteLine("数组的和为{0},最大值{1},最小值{2}",sum1,max1,min1);
            Console.ReadKey();


        }

        /// <summary>
        /// out用于传出值,ref是双向的,既可以传入值,也可以传出值。
        /// </summary>
        /// <param name="number">传入的数组</param>
        /// <param name="max">最大值</param>
        /// <param name="min">最小值</param>
        /// <returns></returns>
        static int compute(int[] number,out int max2,out int min2)
        {
            int sum2 = 0;
            max2 = number[0];
            min2 = number[0];
            for (int i = 0; i < number.Length; i++)
            {
                sum2 += number[i];
                if (number[i] > max2)
                {
                    max2 = number[i];
                }
                if (number[i] < min2)
                {
                    min2 = number[i];
                }
            }
            return sum2;
        }
    }
}

 

posted @ 2014-04-02 15:40  雨亭天亮  阅读(145)  评论(0)    收藏  举报