C#方法的使用

方法  
 
一 . 什么是方法:
                  方法就是当一堆代码需要重用的时候,就可以将这对代码封装成一个方法,
                 方便重复使用,并且简化代码冗余
二. 什么时候使用方法:
                  当需要专门去做某一件事情的时候,并且这件事情会有可能重复去做的时候
 
                 方法中的参数:
                                  方法中的参数就是去做某件事情所需要的东西,比如去上语文课
                                 的方法, 那么就需要一本语文课本(这个语文课本可以使就是参数)
                                
                                1.实参: 
                                           在方法调用时传入方法的参数是实参
                                2.形参:
                                            在方法的参数列表中声明的参数是形参
                                         (1) params关键字: 
                                                      <1> 形参中使用params修饰的只能是数组类型的形数
                                                     <2>params修饰的形参必须放在参数列表的最后
                                                     <3>params修饰的数组类型形参在调用该方法的时候
                                                            传入的参数可以不是数组类型,但必须是数组同类型的变量
 
                                                  params修饰的形参,调用的时候可以输入数组同类型的多个元素
                                                  int _pingjunzhi  = Avenum(1,2,3,4,5);
                                    params 修饰的形参
                                                 public static int Avenum( params int [] num )
                   {
                    }
 
                  (2) out关键字: 
                      out关键字修饰的参数可以作为返回值使用,
                      并且可是返回多种不同类型的返回值,但是  
                      out修饰的形参必须在方法内赋值.
 
                 //定义string 变量接收返回结果
                  string str1;
                  //定义一个数组接收返回结果,并调用方法
                  int [] result1= Computernum( out str1);
  
                    方法体 : out 用于返回多种不同类型的返回值,作为参数传出
                  public static int [] Computernum( out string str)
                 {
                     out修饰的形参,必须在方法中赋值
                    str = "开始计算";
                  }
 
                               (3) ref关键字:
                  使用ref关键字修饰的形参,可以将变量作为参数传入方法
                 中改变,改变后在将改变后的值带给变量.使用ref的时候
                 必须先在外面给变量赋值
 
                   //定义一个血量
                    int _Hp = 60;   //作为参数传入方法的变量必须赋值
                    //使用ref的时候传参的时候也要加上ref
                   Addhp( ref _Hp);
                   Console.WriteLine( "当前血量"+_Hp);
 
                    //使用ref参数实现回血的方法
                    public static void Addhp( ref int hpyao)
                  {
                      //调用一次回复10点血
                      hpyao += 10;
                  }
                      
三.  方法中的返回值:
                                 方法中的返回值就是做某件事情后得到的结果,比如说去买水果的
                                 一个方法,那么方法结束后买回来的水果便是这个方法的返回值
                            注意:        
                                  返回值不是方法的 必须品,也就是说方法中可以有返回值,也可以没有返回值
 
四. 方法的语法:
                                     [public]  返回值类型  方法名  (参数列表)
              {
                   方法体
              }
 
                         访问修饰符   返回值类型      方法名     (参数列表)
                           public  void  Doclass()
        {
            方法体
        }
          访问修饰符 : 限制自定义类型的访问读取权限
 
          返回值类型 : 返回值类型可以是任意的比如(int,string,数组等),
                  如果没有返回值那么用 void 表示
 
          方法名   : 方法名必须大写
 
          参数列表  : 参数列表中可以有多个参数,参数之间用逗号","间隔
                  可以没有参数,但是小括号必须存在
                  
五. 方法的调用
 
                       注意: 方法如果在同一个类中类名可以省略掉  
                              类名. 方法名 ( );
 
六. 方法的重载
 
             方法的重载就是多个方法方法名相同参数不同,
         跟返回值无关.
             
            参数不同:
                     <1>  参数数量不同 :同名方法参数列表中的参数数量不同
                     <2> 参数类型不同 :同名方法参数列表中的多个参数类型不同
                     <3>  参数顺序不同 :同名方法参数列表中的参数顺序不同
 
七.方法的递归 
       
         什么是递归          :  递归就是方法自己调用自己
 
         注意                    :  使用递归的时候一定要有一个条件跳出递归
           
         什么时候使用递归:  当方法第一次运行的结果对第二次运行结果有影响的时候
                                       ,或者需要重复操作方法的时候
 
         递归执行的原理   :  方法一层层重复调用自己,当满足条件退出的时候会从最里层' 
                                       一层层的退出!
           
                     
 
                      
代码:
 
using System;
namespace 第十二章方法参数的使用
{
    class Program
    {
        static void Main( string[] args)
        {
#region 使用方法封装:加减乘除取余
            //使用方法封装加减乘除取余
            //调用方法并打印结果
            int sum =CounterNum(10,14, "+");
            Console.WriteLine(sum);
            #endregion
#region 使用方法封装:输入一组数,并获得这组数的平均值
            //调用平均值方法
            int _pingjunzhi  = Avenum(1,2,3,4,5);
            Console.WriteLine(_pingjunzhi);
            #endregion
#region 使用方法实现登录计算机操作,并返回数据计算的结果
            //定义string 变量接收登录的返回结果
            string str1;
            //定义一个数组接收 计算结果
           int [] result1= Computernum( out str1, "wode", "888",1,3,4,6,7,9);
            Console.WriteLine( "计算器"+str1);
            Console.WriteLine( "和是:"+result1[0]);
            Console.WriteLine( "最大值是:" + result1[1]);
            Console.WriteLine( "最小值是:" + result1[2]);
            #endregion
#region 封装一个吃血药的方法
            //定义一个血量
            int _Hp = 60;
            Addhp( ref _Hp);
            Console.WriteLine( "当前血量"+_Hp);
            #endregion
        }
#region 方法体: 使用方法封装加减乘除取余
        //计算器方法,计算两个数的加减乘除 取余
        //形参  : 需要两个数字 ,和计算的类型(+ - * /  %)
        public static int CounterNum( int num1, int num2, string symbol)
        {
            //定义一个int类型的结果
            int result = 0;
            switch (symbol)
            {
                case "+":             //加法
                    result = num1 + num2;
                    break;
                case "-":             //减法
                    result = num1 - num2;
                    break;
                case "*":             //乘法
                    result = num1 * num2;
                    break;
                case "/":             //除法
                    result = num1 / num2;
                    break;
                case "%":             //取余
                    result = num1 % num2;
                    break;
                default:
                    Console.WriteLine( "输入有误,请输入 + - * /  % ;");
                    break;
            }
            //返回计算结果
            return result ;
        }
        #endregion
#region 方法体params参数:输入一组数,并获得这组数的平均值
        //这是一个 名为平均值的方法  //params 关键字修饰的形参 必须是数组类型,
                                     //并且必须放参数列表到最后,经过params修饰的形参
                                     //在调用时传参可以不用传数组类型,
                                     //直接传符合数组类型的变量即可
        public static int Avenum( params int [] num )
        {
            //用来记录数组中元素的和
            int _numHe=0;
            foreach (var item in num)
            {
                //把数组中的每个元素相加
                _numHe += item;
            }
            return _numHe/num.Length;
        }
        #endregion
#region 方法体out参数:登录计算器,并计算一组数据的和,和一这一组数据中的最大值和最小值
        public static int [] Computernum( out string str,  string zhanhao, string mima , params int [] _arr )
        {
            //帐号
            string zhangaho1= "wode";
            //密码
            string mima1 = "888";
            //判断帐号密码是否相等
            if (zhangaho1 ==zhanhao &&mima1 ==mima)
            {
                //相等打印登录成功
                Console.WriteLine( "登录成功");
                //并将 "开始计算" 返回
                str = "开始计算";
            }
            else
            {
                //否则打印登录失败
                Console.WriteLine( "登录失败");
                //并将"重新登录返回"
                str = "重新登录";
            }
            //定义一个数组把 和, 最大值, 最小值返回
            int[] _result = new int[3];
            //定义一个最大值
            int _maxNum = int.MinValue;
            //定义一个最小值
            int _minNum = int.MaxValue;
            foreach (var item in _arr)
            {
                //计算和
                _result[0] += item;
                //获取最大值
               
                if (_maxNum <item)
                {
                    _maxNum = item;
                }
                //获取最小值
                if (_minNum>item  )
                {
                    _minNum = item;
                }
            }
            //把最大值赋值给数组
            _result[1] = _maxNum;
            //把最小值赋值给数组
            _result[2] = _minNum ;
            //把存有和 最大最小值的数组返回
            return _result ;
       
        }
        #endregion
#region 方法体ref参数: 回血的方法
        //使用ref参数实现回血
        public static void Addhp( ref int hpyao)
        {
            //调用一次回复10点血
            hpyao += 10;
        }
        #endregion
    }
}
      
 
 
 
 
 
 
 
 
 
 
 
 
 
 
  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值