方法中的返回参数(out参数)

来源:互联网 发布:微信商城java源码下载 编辑:程序博客网 时间:2024/05/16 06:59

方法中的参数(out参数)

1、out参数

(1)使用数组返回多个值(同一类型)

代码:

using System;using System.Collections.Generic;using System.Linq;using System.Text;namespace 函数中参数{    class Program    {        static void Main(string[] args)        {            //定义一个函数,返回数组中的最大、最小值、平均值、总和            int[] nums = { 1, 3, 24, 5, 6, 7, 12, 9 };            int[] res=GetMaxMinAvgeSum(nums);            Console.WriteLine("最大值为:{0},最小值为:{1},总和为:{2},平均值为:{3}", res[0], res[1], res[3], res[2]);            Console.ReadKey();                   }        //将要返回的多个值放在一个数组中返回        public static int[] GetMaxMinAvgeSum(int[] nums)    //返回值为一个数组        {            int[] result = new int[4];    //要返回的数组定义            //假设result[0]存放最大值,result[1]存放最小值,result[2]存放平均值,result[3]存放总和            result[0] = nums[0];  //假设最大值为数组中的第0个元素            result[1] = nums[0];  //假设最小值为数组中的第0个元素            result[2] = 0;        //平均值            result[3] = 0;        //总和            for (int i = 0; i < nums.Length; i++)            {                if (nums[i] > result[0])  //进行最大值求取                {                    result[0] = nums[i];                }                if (nums[i] < result[1])  //进行最大值求取                {                    result[1] = nums[i];                }                result[3] += nums[i];     //求总和            }            result[2] = result[3] / nums.Length;    //求平均值            return result;  //返回数组        }    }}

运行结果


(2)返回多个值(属于不同类型)

当返回多个值时,每个值属于不同的类型,则不能使用数组返回。可以使用out参数,out参数可以用于在一个方法中返回多个不同类型的值。

实例1----代码:

using System;using System.Collections.Generic;using System.Linq;using System.Text;namespace 函数中参数{    class Program    {        static void Main(string[] args)        {            //定义一个函数,计算数组中的最大、最小值、平均值、总和            int[] nums = { 1, 3, 24, 5, 6, 7, 12, 9 };            int max=0;            int min=0;            int sum=0;            int avg=0;            Test(nums, out max, out min, out sum, out avg);            Console.WriteLine("最大值为:{0},最小值为:{1},总和为:{2},平均值为:{3}", max, min, sum, avg);            Console.ReadKey();                   }        public static void Test(int[] nums,out int max,out int min,out int sum,out int avg)        {            //out参数要求在方法的内部必须为其赋值            max = nums[0];            min = nums[0];            sum = 0;            for (int i = 0; i < nums.Length;i++)            {                if (nums[i]>max)                {                    max = nums[i];  //最大值                }                if (nums[i] <min)                {                    min = nums[i];  //最小值                }                sum += nums[i];     //总和            }            avg = sum / nums.Length;    //求平均值        }    }}

运行结果:


实例2----代码:

using System;using System.Collections.Generic;using System.Linq;using System.Text;namespace 函数中参数{    class Program    {        static void Main(string[] args)        {            //定义一个函数,计算数组中的最大、最小值、平均值、总和            int[] nums = { 1, 3, 24, 5, 6, 7, 12, 9 };            int max=0;            int min=0;            int sum=0;            int avg=0;            bool b;            string s;            double d;            Test(nums, out max, out min, out sum, out avg,out b,out s,out d);            Console.WriteLine("最大值为:{0},最小值为:{1},总和为:{2},平均值为:{3},b:{4},s:{5},d:{6}", max, min, sum, avg,b,s,d);            Console.ReadKey();                   }        public static void Test(int[] nums,out int max,out int min,out int sum,out int avg,out bool b,out string s,out double d)        {            //out参数要求在方法的内部必须为其赋值            max = nums[0];            min = nums[0];            sum = 0;            for (int i = 0; i < nums.Length;i++)            {                if (nums[i]>max)                {                    max = nums[i];  //最大值                }                if (nums[i] <min)                {                    min = nums[i];  //最小值                }                sum += nums[i];     //总和            }            avg = sum / nums.Length;    //求平均值            //必须对剩余的参数赋值            b = true;            s = "Hello";            d = 0.45;        }    }}

运行结果:


实例2----代码:

using System;using System.Collections.Generic;using System.Linq;using System.Text;namespace out参数使用{    class Program    {        static void Main(string[] args)        {            //分别提示用户输入用户名和密码            //定义个方法来判断用户输入的是否正确,返回登录的结果,并返回用户的登录信息            Console.WriteLine("请输入用户名:");            string username = Console.ReadLine();            Console.WriteLine("请输入密码:");            string userpwd = Console.ReadLine();            string str_msg;            bool s = IsLogin(username, userpwd, out str_msg);            Console.WriteLine("登录结果为:{0}\n登录信息:{1}\n", s, str_msg);            Console.ReadKey();        }        //方法定义,msg是返回的信息        public static bool IsLogin(string name, string pwd, out string msg)        {            if (name=="admin" && pwd=="8888")            {                               msg = "登录成功";                return true;            }            else if (name == "admin")            {                msg = "密码错误";                return false;            }            else if (pwd=="8888")            {                msg = "用户名错误";                return false;            }            else            {                msg="未知错误";                return false;            }        }    }}

运行结果:


0 0
原创粉丝点击