这篇“c#的out参数怎么使用”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“c#的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; }}
以上就是关于“c#的out参数怎么使用”这篇文章的内容,相信大家都有了一定的了解,希望小编分享的内容对大家有帮助,若想了解更多相关的知识内容,请关注亿速云行业资讯频道。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。