07004 out关键字的详细说明及实例演示 附源代码 – 恵玩科技

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace @out
{
    class Program
    {
        static void Main(string[] args)
        {

            //调用GetInfo
            int[] test = {11,22,33,55,444,222,1112,31223,3456,-119,-999 };
            int[] info = GetInfo(test);
            Console.WriteLine("这个数组的:\n最大值为{0},最小值为{1},总和为{2}",info[0],info[1],info[2]);
            /*
             * 分析:
             * 虽然能够调用,但是达不到见名知意的效果,需要记忆复杂的变量
             * 所以,需要改进
             * 改进方法--->out传值
             */
            //调用重载的GetInfo
            int max = 0;
            int min = 0;
            int sum = 0;
            GetInfo(test,out max,out min,out sum);
            Console.WriteLine("这个数组的:\n最大值为{0},最小值为{1},总和为{2}", max, min, sum);


            Console.ReadKey();
        }

        /*
         * out传值练习
         * 源代码一会儿会发到博客
         */

        //out使用场景,一次传回多个值,并且需要传值
        //实例:
        //定义一个方法,同时返回最大值,最小值,总和
        //解决办法,返回一个数组
        public static int[] GetInfo(int[] array)
        {
            int[] temp = {0,0,0 };
            
            for(int i = 0; i < array.Length; i++)
            {
                //求和
                temp[2] += array[i];
                //得到最大值最小值
                if (array[i] > temp[0])
                {
                    temp[0] = array[i];
                }else if (temp[1] > array[i])
                {
                    temp[1] = array[i];
                }
            }



            return temp;
        }

        //重载GetInfo方法,使用out传值
        //注意:这里没有返回值,方法类型为void
        public static void GetInfo(int[] array,out int max,out int min,out int sum)
        {
            //注意:对于定义的变量,如果要引用变量,必须先赋值,无法直接用变量赋值
            max = 0;
            min = 0;
            sum = 0;

            for(int i = 0; i < array.Length; i++)
            {
                sum += array[i];//求和

                //得到最大值和最小值
                if (max < array[i])
                {
                    max = array[i];
                }else if (min > array[i])
                {
                    min = array[i];
                }
            }

        }
    }
}

 

打赏作者