c#之out参数使用
out的参数要求在方法的内部必须返回值。
·
问:什么时候使用到out参数?
答:如果你在一个方法中,返回多个相同类型的值的时候,可以考虑返回一个数组。但是如果返回多个不同类型的值的时候,返回数组就不行了,那么我们我们可以考虑使用out参数。out参数就侧重于在一个方法中可以返回多个不同类型的值,当然它也可以返回多个相同类型的值。
///<summary///计算一个整数数组的最大值、最小值、平均值、总和///</summary>///<param name="nums">要求值的数组</param>///<param name="max">多余返回的最大值</param>///<param name="min">多余返回的最小值</param>///<param name="sum">多余返回的总和</param>///<param name="avg">多余返回的平均值</param>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;}
使用该方法,在main函数里面
int[] numbers = {1,2,3,4,5,6,7,8,9};int max = 0;int min = 0;int sum = 0;int avg = 0;Test(numbers,out max,out min, out sum, out avg);
调用时候起的名字,跟方法里面的名字不需要完全一样哦~比如这边可以改写成
int[] numbers = {1,2,3,4,5,6,7,8,9};int max1 = 0;int min1 = 0;int sum1 = 0;int avg1 = 0;Test(numbers,out max1,out min1, out sum1, out avg1);
这边其实还能不给它赋值,如下写法:
int[] numbers = {1,2,3,4,5,6,7,8,9};int max1;int min1;int sum1;int avg1;Test(numbers,out max1,out min1, out sum1, out avg1);
out参数一定一定要在内部返回值,否则报错。

来个小练习
static void Main(){// 分别的提示用户输入用户名和密码// 你写一个方法来判断用户输入的是否正确// 返回给用户一个登录结果,并且还要单独的返回给用户一个登录信息// 如果用户名错误,除了返回登录结果之外,还要返回一个"用户名错误"// "密码错误"Console.WriteLine("请输入用户名");string userName = Console.ReadLine();Console.WriteLine("请输入密码");string userPwd = Console.ReadLine();string msg;bool b = IsLogin(userName, userPwd, out msg);Console.WriteLine("登录结果{0}", b);Console.WriteLine("登录信息{0}", msg);Console.ReadKey();}
public static bool IsLogin(string name, string pwd, out string msg) {if (name =="admin" && pwd == "888888") {msg = "用户成功";return true;}else if (name == "admin"){msg = "密码错误";return false;}else if (pwd == "888888"){msg = "用户名错误";return false;}else{msg = "未知错误";return false;}}
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐


所有评论(0)