3方法和out、ref、params关键字

什么是方法

函数就是将一堆代码进行重用的一种机制。

语法

[public] static 返回值类型 方法名([参数列表])
{
	方法体;
}

方法的调用

语法

类名.方法名([参数]);

在某些情况下,类名是可以省略的,如果你写的方法跟Main()函数同在一个类中,这个时候,
类名可以省略。

return的作用

1、在方法中返回要返回的值。
2、立即结束本次方法。


使用方法

1、

我们在Main()函数中,调用Test()函数,我们管Main()函数称之为调用者,
管Test()函数称之为被调用者。

  • 如果被调用者想要得到调用者的值:
    1)、传递参数。
    2)、使用静态字段来模拟全局变量。

  • 如果调用者想要得到被调用者的值:
    1)、返回值

2、

不管是实参还是形参,都是在内存中开辟了空间的。

3、

方法的功能一定要单一。

4、out、ref、params

1)、out参数。

如果你在一个方法中,返回多个相同类型的值的时候,可以考虑返回一个数组。
但是,如果返回多个不同类型的值的时候,返回数组就不行了,那么这个时候,
我们可以考虑使用out参数。out参数也叫多余返回的参数。
out参数就侧重于在一个方法中可以返回多个不同类型的值。out的宗旨是保证每一个传出变量都必须被赋值.

比如,求一个数组的最大值,最小值,总和,平均值
image

调用输出
image

使用out变量时,调用时需要声明方法里相同类型的变量,并且参数列表里也要用out标识


2)、ref参数。

能够将一个变量带入一个方法中进行改变,改变完成后,再讲改变后的值带出方法。所以可以不用接受返回值再重新 赋值 给要改变的变量。
ref参数要求在方法外必须为其赋值,而方法内可以不赋值。

如下,创建一个 方法,不写返回值也可以改变变量的值
image

与out的区别
out虽然获得了地址,但是传入的时候那个值没有,ref即获得了地址也获得了值
out要求方法内部必须要给形参赋值,ref要求外部要给实参赋值
如下:out必须要在方法里重新赋值,否则就会报错
image


3)、params可变参数

将实参列表中跟可变参数数组类型一致的元素都当做数组的元素去处理。
params可变参数必须是形参列表中的最后一个元素。

例如,在被params修饰的数组类型的参数,可以传数组或者直接传数组里的值。
image

5、方法的重载

概念:方法的重载指的就是方法的名称相同给,但是参数不同。
参数不同,分为两种情况
1)、如果参数的个数相同,那么参数的类型就不能相同。
2)、如果参数的类型相同,那么参数的个数就不能相同。
方法的重载跟返回值没有关系。

比如

public static void Test(int a, int b)
        {
            a = a + b;
        }


        public static void Test(int a)
        {
            a = 5;
        }


        public static void Test(string a, string b)
        {
            a = a + b;
        }


        public static void Test(string a)
        {
            a = "";
        }

6、方法的递归

方法自己调用自己。

如果在方法里写return,它结束本次调用,回到上次调用,并不能直接跳出方法的递归
,因为结束函数调用(return),只会返回到调用处,哪调用就返回哪

比如
image

posted @ 2021-09-26 20:07  青仙  阅读(62)  评论(0编辑  收藏  举报