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

    xiaoxiao2021-04-12  69

    方法中的参数(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;             }         }     } }

    运行结果:

    转载请注明原文地址: https://ju.6miu.com/read-667616.html

    最新回复(0)