c#中方法out参数的使用

一个很普通的例题,求出一个整型数组的最小值、最大值、总和、平均值,利用调用函数的方法来ut参数实现

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace out参数
{
    class Program
    {
        static void Main(string[] args)
        {
            int[] arr1 = { 1, 3, 6, 9,10,0};
            int[] arr2 = GetMaxMinSumAvg(arr1);
            for (int i = 0; i < arr2.Length; i++)
            {
                Console.WriteLine("{0}",arr2[i]);
            }
            Console.ReadKey();
        }
        /// <summary>
        /// 求一个整型数组中的最小值、最大值、总和、平均值
        /// </summary>
        /// <param name="arrNum">参数为一个整型数组</param>
        /// <returns></returns>
        public static int[] GetMaxMinSumAvg(int[] arrNum)
        {
            int[] arrNewNum = new int[4];
            arrNewNum[0] = arrNum[0];//最小值
            arrNewNum[1] = arrNum[0];//最大值
            arrNewNum[2] = 0;//总和
            for (int i = 0; i < arrNum.Length; i++)
            {
                if (arrNum[i] < arrNewNum[0])
                    arrNewNum[0] = arrNum[i];
                if (arrNum[i] > arrNewNum[1])
                    arrNewNum[1] = arrNum[i];
                arrNewNum[2]+=arrNum[i];
            }
            arrNewNum[3] = arrNewNum[2] / arrNum.Length;
            return arrNewNum;
        }
    }
}

  在上面的这个例题中,在被调用函数public static int[] GetMaxMinSumAvg(int[] arrNum)中,是很轻松的实现了四个值的求算,然后通过参数数组将4个值传递给主调函数,在这里,我们可以看到,在被调用函数传递给主调函数,是通过数组传递过去了多个值,但这仅仅是传递过去了同类型的数据,现实中往外需要在传递给多个不同类型的数据,这种情况下,上面的这个方法就无法实现了,所以这里引入了out,

时间: 2024-10-27 13:35:12

c#中方法out参数的使用的相关文章

C#中方法的参数的四种类型

C#中方法的参数有四种类型: 1. 值参数类型  (不加任何修饰符,是默认的类型) 2. 引用型参数  (以ref 修饰符声明) 3. 输出型参数  (以out 修饰符声明) 4. 数组型参数  (以params 修饰符声明) =================================================== 1. 值传递: 值类型是方法默认的参数类型,采用的是值拷贝的方式.也就是说,如果使用的是值类型,则可以在方法中更改该值,但当控制传递回调用过程时,不会保留更改的值.使用

C#开发Unity游戏教程之Unity中方法的参数

C#开发Unity游戏教程之Unity中方法的参数 Unity的方法的参数 出现在脚本中的方法,无论是在定义的时候,还是使用的时候,后面都跟着一对括号“( )”,有意义吗?看起来最多也就是起个快速识别方法的作用吧.既然C#的语法规定方法就应该这么写,肯定是有一定道理的.如果是上升到战略意义的道理,连作者也不是很明白,但是作者知道这对括号里可以添加“参数”. Unity中参数的作用 要说明参数的作用,就必须从方法说起.方法可以处理变量中的数据,进而影响游戏对象的行为逻辑,这是本章前面一直在强调的.

Swift3中方法可变参数语法的一些改变

我们知道在Swift2中,默认情况下方法的参数是let值,也就是不可改变的. 不过我们可以在参数前添加var关键字改变其不变性: func foo(var i:Int){ i += 1 print(i) } 不过遗憾的是在Swift2.x+中,已经明确表明方法参数的修饰关键字var将会在Swift3中被移除,所以为了产出这可恶的警告,你必须使用inout关键字,并且在调用方法传递实参时也要加上地址符: fun foo(inout i:Int){ i += 1 print(i) } var i =

C#中方法的参数修饰符

做项目久了,有的时候真的需要静下心来认真的总结一下自己所用到的技术,而不是每天依葫芦画瓢,每天忙忙碌碌,到头来不知道自己忙了个啥,学了什么,自己到底掌握了多少知识.所以我想回顾一下C#的基础知识,把重要的知识总结成点记录下来,方便以后快速阅读. 方法的参数及参数修饰符: 1.(无).如果一个参数没有用参数修饰符标记,则认为它将按值进行传递,这将意味着被调用的方法收到原始数据的一份副本. 2. out:输出参数由被调用的方法赋值,因此按引用传递,如果被调用的方法没有给输出参数赋值,就会出现编译错误

Swift中方法闭包参数不能省略括号的一种情况

大熊猫猪·侯佩原创或翻译作品.欢迎转载,转载请注明出处. 如果觉得写的不好请多提意见,如果觉得不错请多多支持点赞.谢谢! hopy ;) 我们知道在swift中,如果方法的最后一个参数是一个闭包类型,则可以省略该参数,直接在函数后面跟一个闭包,比如: func test(count:Int,(Int)->Bool){ //... } 可以这么调用: test(11){(x)->Bool in //... } 但是有些情况不能省略括号,比如for语句中: for dinosaur in dino

关于pb中方法的参数的定义与使用

在这个方法中定义了两个参数,定义了参数的名称与类型,还有返回值的类型(不知道返回值与参数的类型不同会怎么样) 上面定义两个参数,然后传到gf_get_max()这个方法里面, 其实gf_get_max()的作用就是对参数做一定规律的处理然后返回值, 原文地址:https://www.cnblogs.com/thomasbc/p/8470591.html

《Java中方法的参数传递方式只有一种:值传递》

1 //方法的参数传递机制(1):基本类型做形参的传递. 2 class PrimitiveTransferTest 3 { 4 public static void swap(int a,int b) 5 { 6 //下面代码实现a和b交换 7 int temp = a; 8 a = b; 9 b = temp; 10 System.out.println("swap方法里,a的值是:"+a+",b的值是:"+b); 11 } 12 public static v

C#方法的参数类型

在C#中,方法的参数类型有四种: 值类型 引用类型 输出类型 数组型参数 值参数: 所谓值参数,就是利用值向方法传递参数时,编译程序给实参的值做一份拷贝,并将此拷贝传递给该方法,这样做的结果就是被调用的方法不会修改实参的值,保证了实际值的安全,在调用方法时,如果形参的类型时值类型的话,必须保证实参的类型也是值类型的数据. 例子: public class MyClass { public MyClass() { // //TODO: 在此处添加构造函数逻辑 // } public void Ch

关于Java方法的参数

刚好看到C++的函数这块,说C++中除了引用类型的形参,其他都是实参的副本(个人总结). 隐约记得Java中方法的参数也是这么回事,于是手动测试一番. 结果 Java中方法的参数都是值传递,哪怕是引用类型,传递的也是引用本身的副本(指向同一个对象). 个人以为,将Java中的引用类型的变量看作指针更容易理解. 测试代码 import org.junit.Test; public class TestFunction { @Test public void testInt(){ int a = 3