zoukankan      html  css  js  c++  java
  • 看视频学编程之C#中的函数

    ------- Windows Phone 7手机开发.Net培训、期待与您交流! -------

    函数
      
     函数就是将一堆代码进行重用的一种机制。函数就是一段代码,这段代码可能有输入的值(参数),可能会返回值。
    一个函数就像一个专门做这件事的人,我们调用它来做一些事情,它可能需要我们提供一些数据给它,它执行完成后
    可能会有一些执行结果给我们。要求的数据就叫参数,返回的执行结果就是返回值。
     
    Console.ReadLine();就是一个有返回结果的函数;Console.WriteLine("hello")就是一个有执行参数的函数,只有
    告诉WriteLine被打印的数据它才知道如何打印;
    int i= Convert.ToInt32("22")则是一个既有参数又有返回值的函数。
    有了函数写代码就像拼零件,C#中的各种各样的技术其实就是通过for、if等这些基础的语法将不同的函数按照一定的逻辑组织起来。
     
    自己写一个函数
     
    读取输入的整数,定义成函数,多次调用:
    static int ReadInt()
    {
       String s = Console.ReadLine();
       return Convert.ToInt32(s);
    }
    设置断点测试,程序调用到函数的时候是先进入函数内部执行,执行完毕函数后再继续向下行代码执行。
    函数如果没有返回值则标记返回值类型为void
    return语句
    导致函数立即结束。在返回值为void的函数中return方法直接结束不返回任何数值,在返回值非void的函数中return返回一个返回类型的数据
    函数返回值易错点:一个函数如果“答应”返回一个非void类型的值,则函数的所有路径都要有返回值。
     
    函数参数
     
    确定函数参数的原则:自己能确定的数据自己内部解决,自己确定不了的数据通过参数传递。
    函数名开头大写,参数名开头小写,参数名、变量名要有意义
     
    函数重载(函数重名
     
     
    函数的重名:错误                                                         
    static void SayHello(string name)                       static void SayHello(string name)                                    
    {                                                                    {
        Console.WriteLine("我是{0}",name);                     Console.WriteLine("我是{0}",name);
    }                                                                    }
    static void SayHello(string name)                        static int SyaHello(string name)
    {                                                                    {
        Console.WriteLine("I am{0}",name);                       return 10
    }                                                                     }  
     
    函数的重载:
    static void SayHello(string name)                       static void SayHello(string name)                                    
    {                                                                    {
        Console.WriteLine("我是{0}",name);                     Console.WriteLine("我是{0}",name);
    }                                                                    }
    static void SayHello(int age)                              static int SyaHello(string name,string nicname)
    {                                                                    {
        Console.WriteLine("我的年龄是{0}",age);                 Console.WriteLien("我是{0},昵称是{1}",name,nicname);
    }                                                                     }   

     构成重载的条件:参数类型不同或者参数个数不同(函数的签名不同),与返回值无关。

     
     
    可变参数
     
    参数数组:int sum(params int[] values)
    params关键字对sum函数产生的影响是:调用该函数时,可以传递任意数量的整数参数。
    编译器每次都会统计int参数值的数量,然后创建相同大小的一个int数组,在数组中填充参数值,最后调用函数,并向它传递一个数组参数。
    注意:
    1、只能为一维数组使用params关键字;
    2、不能只依赖params关键字来重载一个方法,params关键字不构成函数的签名的一部分;
    3、不允许params数组指定ref或out修饰符;
    4、params数组必须是函数的最后一个参数,所以一个函数只能有一个params数组;
    5、非params函数总是优先于一个params函数。
    class
    {
      public static void Hole(params object [] paramList)
      ……
    }        可以接受任意数量的object参数值;参数类型也是任意的!(object是所有类的根)
     
    函数的ref、out参数
     
    ref必须先初始化,因为是引用,所以必须先“有”,才能引用,而out则是内部为外部赋值,所以不需要初始化,而且外部初始化也没用。
    ref应用场景内部对外部的值进行改变,out则是内部为外部变量赋值,out一般用在函数有多个返回值的场所
     
     
  • 相关阅读:
    Java基础--HashMap面试题
    数据结构
    Java基础面试题--单利模式及在多线程情况下的运用
    Java多线程面试题--保证多个线程顺序执行
    从客户端(ASPxFormLayout1$txtRule="<YYYY><MM><DD><XXXX>")中检测到有潜在危险的 Request.Form 值
    关于ASPxComboBox通过ClientInstanceName,js获取不到控件的问题
    未能找到类型或命名空间名List
    Postman中使用post方式调用接口
    用户可能引发报错的另类操作
    关于发布程序之后js文件存在缓存问题
  • 原文地址:https://www.cnblogs.com/cctt/p/3141677.html
Copyright © 2011-2022 走看看