函数 (概念,定义,重载,参数)

函数的概念:函数就是定义在类中具有特定功能的一段独立小程序。(函数也称方法)
函数的定义:函数可以帮助我们把功能性,逻辑性的代码进行封装,从而实现重复调用,提高了程序的复用性和效率。
定义函数的格式:
修饰符返回值类型 函数名 (参数类型 参数1,参数类型,参数2,...参数类型,参数n)
{
        执行语句;
        return 返回值;
}
  • 函数名:函数的名字,一定要按照命名规范起名,表明函数的作用。
  • 返回值:表示这个函数运行后最后的结果。
  • 返回值类型:取决于返回值的类型。
  • return:表示将返回值返回的动作,会把返回值返回到调用者;同时还能结束函数功能。
  • 参数列表(小括号中的内容):定义这个函数所需要的参与运算的未知数据,并且每一个数据都要有相应的数据类型,可以理解为变量。
  • 修饰符:修饰这是个什么样的函数,可以有多个修饰符。
  • 函数体:函数运行的主体部分,以大括号表示作用范围。
函数的用法:我们常用的两种方法:直接调用,赋值调用。
注意 :函数的返回值有无要根据函数的具体功能而定,如果,没有返回值,那么返回值类型就写void,void 也是关键字。函数参数真实参与运算的是调用传入的实际参数,应能分别实参和形参这两种命名的区别。
函数的特点
  • 定义函数可以将功能代码进行封装。
  • 定义函数便于对该功能进行复用。
  • 函数的出现提高了代码的复用性。
  • 函数只有被调用才会执行。
如果函数没有具体的返回值,返回值类型就用void来表示。那么函数中的return语句可以省略不写。
return有两个作用:1,返回值。2结束函数功能。如果带有返回值,则return关键字必不可少,并且注意多分支结构都必须写明返回。
函数中只能调用其他函数,不能在函数内定义函数。 定义函数时,函数的结果应该返回给调用者,交个调用者处理
函数的重载
概念:重载(overload):同一个类中允许存在一个以上的同名函数,只要他们的参数个数或者参数类型不同即可;
public int add (int x, int y)//获取两个整数的和
{
    return x + y;
}

//获取两个小数的和
public double add(double x, double y)
{
    return x + y;
}

//获取三个整数的和
public int add (int x,int y, int z)
{
    return x + y + z;
}
 
class Demo
{
    static voidMain(string[] args)
    {
        Add( 1,2 ,1 ); //第三个参数1 将取代原有参数的区别
        Add( 1,2 ); //第三个参数没有,则默认输入可选参数
    }

    static int Add(inta,int b ,int c = 0 ) //可选参数的写法
    {
        System.Console.Print("a :{0},b:{1},c:{2} ",a,b,c);
    }
}
函数重载和可选参数的区别:
可选参数,是在声明方法的某个参数的时候为其指定一个默认值,在调用该方法的时候如果采用该默认值,你就无须指定该参数.换句话说,在没有明确指定该参数值时,函数将自动使用预先指定的默认值。
可选参数实例:
所有可选参数必须写在普通参数的右边,如果写在普通参数的左边,则会编译报错
重载匹配原则分析:
  1. 当调用者匹配类中具有重载函数时,先找出符合参数个数的所有重载函数.
  2. 在符合参数个数的前提下,找到最符合类型的重载函数,如果没有,隐式转换后看是否负责匹配.
  3. 当符合条件的重载函数不止一个时,优先选择不带可选参数的重载函数.
重载实例:
class Demo
{
    static voidMain(string[] args)
    {

        Add(1, 2, 1);
        Add(1, 2, 5.0f);
        Add(1.0f, 2.0f,5.0f);
        Add(1, 2);

        System.Console.ReadLine();
    }

    static void Add(int a,int b)
    {
        System.Console.WriteLine("第一个函数被调用!");
        System.Console.WriteLine("a :{0} ,b :{1}, ", a, b );
    }


    static void Add(int a,int b, int c = 0)
    {
        System.Console.WriteLine("第二个函数被调用!");
        System.Console.WriteLine("a :{0} ,b :{1},c :{2} ", a, b, c);
    }

    static void Add(int a,int b, float c)
    {
        System.Console.WriteLine("第三个函数被调用!");
        System.Console.WriteLine("a :{0} ,b :{1},c :{2} ", a, b, c);
    }

    static void Add(doublea, double b, double c)
    {
        System.Console.WriteLine("第四个函数被调用!");
        System.Console.WriteLine("a :{0} ,b :{1},c :{2} ", a, b, c);
    }
}

 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

陈言必行

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值