黑马程序员.net基础六

---------------------- <a href="http://edu.csdn.net"target="blank">ASP.Net+Android+IOS开发</a>、<a href="http://edu.csdn.net"target="blank">.Net培训</a>、期待与您交流! ----------------------


方法

将一堆代码进行重用的一种机制(定义在类中)

 (1)语法:

       [访问修饰符][static]返回值类型 方法名([参数])

    (注意:

     参数:要告诉方法的内容 (若是没有参数,则( )不可以省略)

     参数作用域:就是在方法体中的

     返回值:返回的执行结果(若是没有返回值,则返回值类型为void

     []里边的内容可以写可以不写

     命名规则:方法名开头大写,参数名开头小写,参数名和变量名都要有意义

     )

(2)一个方法只有一个返回值;一旦一个方法有了返回值,就必须通过return返回一个值,并且这个值要与它的返回值类型是相同的

(3)当形参是数组名的时候,我们传数组名即可。

(4)方法的重载:一般在同一个类中,方法名相同,并且方法的参数个数不同或者对应位置上的类型不同,才可以够成方法的重载

(注意:方法的重载和返回值类型无关)

参数(形式参数)

例:

public static void PrintSum(int x,float y) //定义了一个为int类型的变量x和一个float类型的变量y   

 {·····}  

       public static void PrintSum(int x,float y) //定义了一个为int类型的变量x和一个float类型的变量y

        {·····}注:形参是声明在方法的参数列表中的,而不是方法体中的本地变量。如果一个方法一旦有一个参数,那么调用者就必须传参数,并且传参数的个数与对应位置上的类型须一致

定义数组参数的语法:

    [访问修饰符] [static] 返回值类型 方法名(params  int [ ] 数组名)

例:

public static void Sum(params int [] sscore)  

public static void Sum(params int [] sscore)返回值

方法可以向调用代码返回一个值,返回的值被插入到调用代码中发起调用的表达式所在的位置。

 注:要返回值,方法必须在方法名前声明一个返回类型,如果方法不返回值,他必须声明void返回类型。

(5)经典练习

1.读取要输入的整数,定义成方法,多次调用(如果用户输入的是数字,则返回,否则提示用户一直重新输入)

        public static int ReadInt() //返回一个整形

        {

            int s = 0;

            do

            {

//若用户输入的是整数,则返回,否则进入catch,一直循环,直到输出整数

               try

                {

                    s = Convert.ToInt32(Console.ReadLine());

                    return s;

                }

                catch /

                {

                    Console.WriteLine("输入有误,请重新输入");

                }

            }

            while (true);

   Main()中:Console.WriteLine("请输入您的出生年份");

            int year=ReadInt(); //定义一个变量接收返回值

            Console.WriteLine("您的出生年份是{0}",year);

   

 求两个值中的最大值

            public static int Max(int i1, int i2)

        {

          //若是i2大则返回i2,否则返回i1

            if (i1 < i2)

            {

                return i2;             }

            else

            {

                return i1;

            }

         }

  Main()中:

       int M=Max(61, 22);

       Console.WriteLine("最大值为"+M);  

 

计算数组的和

         public static int Sum(int[] numbers)

        {

                int sum = 0;

                for (int i = 0; i < numbers.Length; i++)

                {

                    sum += numbers[i];

                }

                return sum;

        }

 Main()方法中:

              int[] scores = { 12, 22, 33 };

        //因为方法中的形参是数组,在这里我们可以直接传数组名

                int s = Sum(scores);

                Console.WriteLine("总和为"+s);

 

方法的out参数和ref参数

(1)out参数:往外返回一个值

        1. int number;

            int result=Test(out number);

            Console.WriteLine(number);

            Console.WriteLine(result);

       public static int Test( out int a)

        {

            a = 200;

            return a;

        }

此时得到number的值为200result的值为200

它的实现步骤:

1)在方法的参数面前加out,那么传参数的时候,也必须在number前加out,表明这个参数时传入的,而不是传出的。

2)如果参数是以out形式传入的,那么在传入前可以不付初值

3)在方法中对于有out修饰的参数,必须赋值,并且必须在使用之前

        2.写一个方法,计算一个int类型数组中的每个元素的总和、最大值以及最小值

     

            int[] score = { 11, 22, 44, 1, 2, 4, 99, 66 };

            int ma;//接收返回来的值

            int mi;

            int sum = compute(score, out ma, out mi);//传递一个数组名

            Console.WriteLine("最大值是{0},最小值是{1},和为{2}",ma,mi,sum);

   public static  int compute(int[] nums,out int max,out int min)

      //nums表示传入的数组,maxmin是被传出的值

          {

          max=nums[0]; //被out修饰的参数,必须先赋值

          min=nums[0];

           int sum=0;

          for(int i=0;i

            {

                if(nums[i]>max)

                {

                    max=nums[i];

                }

                if(nums[i]

                {

                    min=nums[i];

                }

                sum+=nums[i];

       }

            return sum; //返回sum

        }     

  (2ref参数:它是双向的既能够往外返值,也能能往里边传值(在方法中可以赋值也可以不赋值)

  (3)在传参数过程中,如果参数有outref,那么改变方法中的参数变量的值,调用者中方法的变量的值也会相应随之改变


---------------------- <a href="http://edu.csdn.net"target="blank">ASP.Net+Android+IOS开发</a>、<a href="http://edu.csdn.net"target="blank">.Net培训</a>、期待与您交流! ----------------------

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值