黑马程序员-------.net基础知识五


---------------------- ASP.Net+Android+IO开发S.Net培训、期待与您交流! ----------------------

 

方法(函数)

作用:用来重复代码,当我们在一个过程中反复的写了同样的代码,一般情况下,我们就可以把需要重复写的代码定义在方法中,用的时候只需调用即可

语法:

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

  {

  方法体;   //一般情况下,方法定义在类中。

  }

关于方法的调用:如果是在静态方法(static修饰的)则使用,类名.方法名();在类中调用本类的方法,可以只写方法名();

注:[ ]中的都可以省略不写,但是用处不同,当没有写访问修饰符时,默认为private。当没有返回值时,返回值类型用void代替。

例:判断用户输入的是否为数字的方法。

      public static int ReadInt() //定义一个返回值类型为int的ReadInt方法。
        {
            int num = 0;
            do
            {
                try
                {
                    num = Convert.ToInt32(Console.ReadLine());//接受用户输入的数字
                    return num; //当用户输入合法,返回值
                }
                catch 
                {
                    Console.WriteLine("输入有误,请重新输入!");//当用户输入有误时,输出这句话。
                }
            }
            while(true);

        } 

局部变量:在方法中定义的变量叫局部变量,其作用域从定义开始,到其所在大括号结束为止。

参数(形式参数)

例:

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

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

定义数组参数的语法:

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

例:

public static void Sum(params int [] sscore)

返回值

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

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

例:

int number(){...} //定义了一个需要返回int类型的方法。
void number(){...}//定义了一个不许要返回值的方法。

而声明了有返回类型的方法则须使用return来返回值。

例:

 //写一个让用户判断y或n的方法。
        public static string ReadAnswer()//定义一个返回值为string的ReadAnswer的方法。
        {
            string answer = "";
            do
            {
                answer = Console.ReadLine(); 
                if (answer != "Y" && answer != "N")
                {
                    Console.WriteLine("你的输入有误请重新输入!");

                }

            }

            while (answer != "Y" && answer != "N");//如果用户输入的不是Y或者N则一直循环提示,如果是Y和N则跳出循环。
            return answer; //返回值。
        }

方法的重载

一般在同一个类中,方法名相同,并且方法的参数的个数不同或者对应位置上的类型不同,才能构成方法的重载。

注:方法重载和返回值没有关系。

 例:

        public static void SayHello(string name )
        {
            Console.WriteLine("我是{0}",name);
        }
        public static void SayHello(int age) 
        {
            Console.WriteLine("我今年{0}岁了。",age);
        }

 

 

 out 和ref

 方法只能返回一个值,当需要返回多个值的时候,我们就要用利用out和ref来返回多个值.

注意:使用ref前必须对变量赋值,out不用。
out的函数会清空变量,即使变量已经赋值也不行,退出函数时所有out引用的变量都要赋值,ref引用的可以修改,也可以不修改。

例:

         static void outTest(out int x, out int y)
          {
             //离开这个函数前,必须对x和y赋值,否则会报错。  
               //y = x;   
             //上面这行会报错,因为使用了out后,x和y都清空了,需要重新赋值,即使调用函数前赋过值也不行  
                  x = 1; 
                y = 2;
          }
        static void refTest(ref int x, ref int y) 
         {
            x = 1;  y = x; 
         }    
         static void Main(string[] args)
          {
            int a,b;  //out使用前,变量可以不赋值 
             outTest(out a, out b);
            Console.WriteLine("a={0};b={1}",a,b); 
            int c=11,d=22;  
            outTest(out c, out d);
            Console.WriteLine("c={0};d={1}", c, d);
              
            int m,n;  
            //refTest(ref m, ref n);   
            //上面这行会出错,ref使用前,变量必须赋值  
              int o=11,p=22; 
            refTest(ref o, ref p); 
            Console.WriteLine("o={0};p={1}",o,p);
        }



 

 

 

 

 

 ---------------------- ASP.Net+Android+IO开发S.Net培训、期待与您交流! ----------------------

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值