C#:方法(函数)

1、方法的概念(代码复用性)

方法(函数)就是将一堆代码进行重用的一种机制。方法就是一段代码,这段代码可能有输入的值(形参),可能会返回值。一个函数就像一个专门做这件事的人,我们调用它来做一些事情,它可能需要我们提供一些数据给它,它执行完成后可能会有一些执行结果给我们。要求的数据叫做参数,返回的执行结果就是返回值。

正确使用方法会带来以下好处:

)减少代码重复
)将复杂问题分解为更简单的部分
)提高代码的清晰度
)代码重用
)信息隐藏

2、定义、调用

访问权限  返回值  方法名()

关键字:return

1、方法立即结束返回     2、返回值

调用:对象.方法名()  注:如果调用同一个类里面的方法,对象名可以省略

小技巧:封装方法时,看你有几个参数是变化的,一般定义成几个输入参数

3、值传递和引用传递

注:形参在实参传入的时候开辟内存

值传递:按值传递,传递过去的是该值类型实例的一个拷贝。

 static void Main(string[] args)
        {
            int a=10;
            int b=20;
            Pass(a,b);
            Console.WriteLine(a);  //值传递,a的值还是10
            Console.WriteLine(b);  //值传递,a的值还是10
            Console.ReadKey();
        }
        static void Pass(int a1,int b1)  //实参a的值传入形参a,拷贝a的值放入a1
        {
            a1++;
            b1++;
        }

引用传递:是指在调用方法时实际参数和形式参数都指向同一个内存,这样在方法中如果对参数进行修改,将会影响到实际参数。

 static void Main(string[] args)
        {
            int a=10;
            int[] b= { 14,25,36};
            Pass(a,b);
            Console.WriteLine(a);  //值传递,a的值还是10
            Console.WriteLine(b);  //引用传递,b数组的值已经反转
            Console.ReadKey();
        }
        static void Pass(int a1,int[] b1)  //实参a的值传入形参a,拷贝a的值放入a1
        {
            a1++;
            Array.Reverse(b1) ;  //反转b1元素
        }

4、参数关键字

1、ref:值传递变为引用传递,强制改变值(侧重修改值),使用时形参和实参都必须加上ref修饰

2、out:输出参数,在方法里必须赋初值(侧重赋值)

3、可变数组  params

 static void Main(string[] args)
        {
            int a=10;
            int c;
            int[] b= { 14,25,36};
            Pass(ref a,out c,12,45,78,45,78,69,25,49);
            Console.WriteLine(a);  //使用ref修饰,这时a的值变为11
            Console.WriteLine(b);  //引用传递,使用params修改,b数组为可变数组,值经过方法反转
            Console.WriteLine(c);  //使用out修饰,c值为100
            Console.ReadKey();
        }
        static void Pass(ref int a1,out int c,params int[] b1) 
        {
            c = 100;
            a1++;
            Array.Reverse(b1) ;  //反转b1元素
        }

5、补充

方法的重载:满足以下条件

1、方法名一样    2、方法的参数(参数个数、参数类型)有一个不一样

注:方法名一样,参数类型,个数一样,返回值不一样,属于方法的重复定义

默认参数:在形参列表直接赋初值

在调用方法时,可以不输入方法默认参数对应的实参,使用默认值,如果传入实参,使用实参的值

注:默认参数要放在非默认参数后面

命名参数:调用方法时参数输入按 形参名:实参值 输入,告诉编译器变量对齐,可以不按形参列表顺序来输入实参

 static void Main(string[] args)
        {
            int a=10;
            int c=25;
            Pass( aa:a,cc:c);  //命名参数
            Console.ReadKey();
        }
        static void Pass(int aa,int cc,int bb=10)  //bb:默认参数
        {
          
        }

方法递归:(自己调自己)

 static void Main(string[] args)
        {
            Pass();  //调用三次
            Console.ReadKey();
        }
        static int  count = 0;  //递归次数
        static void Pass()  //第一次调用
        {
            Console.WriteLine("调用Pass方法");
            count++;
            if (count<3)  //递归三次
            {
                Pass();
            }
        }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值