方法中的返回参数(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
- 方法中的返回参数(out参数)
- WebService中的out参数
- WebService中的out参数
- 使用Out参数返回数据
- 方法、参数、返回值、重载 out 和ref
- 方法参数out
- 方法参数(ref out params)
- C#中的Ref参数和Out参数
- 方法参数(params,ref,out)
- 方法参数:ref out params
- 存储过程返回OUT参数的游标
- ref out返回参数的区别
- C#基础学习--方法参数的种类,值参数,引用参数(ref),输出参数(out),数组参数(params)
- out参数
- out参数
- out参数
- out参数
- (C#)方法参数关键字:ref、out、params详解
- 设计模式之代理模式
- java学习笔记(十三)二维数组
- bcdedit无法打开启动配置数据存储拒绝访问
- 关于为什么事务要在Service层
- Android组件---重新认识Android(2)
- 方法中的返回参数(out参数)
- Use Partial Derivatives To Calculate Triangle Vertex Tangent (利用偏导数计算三角形的顶点切线)
- echarts柱状图,改变柱状颜色
- 视觉SLAM之词袋(bag of words) 模型与K-means聚类算法浅析(2)
- Jetty7.6 java.lang.IllegalStateException: Form too large 563410>200000或Form too many keys异常
- 业界难题-“跨库分页”的四种方案
- 手把手教你如何加入到github的开源世界!
- 自定义ScrollView的刷新加载
- 今天在写TableView的时候,懒加载了模型数组同时覆写了setter方法,报错了