March 17, 2018

C#之函数

一、函数简介

【what】一段被封装起来且实现一定功能的代码
【why】提高编码效率,提高程序的可重用性、可读性、可维护性
【where】所有高级编程语言中
【when】

  • 重复出现的相同或类似代码
  • 具有独立逻辑功能的代码

【分类】

  • 系统函数:由系统定义的函数,无需要定义直接使用(需导入对应命名空间)
  • 自定义函数:由用户定义的函数,需先定义再调用

二、函数的定义

【组成】

函数签名(访问修饰符 返回值类型 函数名(参数列表) )+函数体

【语法】

访问修饰符 返回值类型 函数名(参数列表)
{
	//函数体;
}
  • 访问修饰符:设置函数的可访问范围,public static
  • 返回值类型:函数返回值的数据类型
    • 可以是C#中的任意数据类型
    • void表示无返回值
  • 函数名:函数的名称,通过函数名调用函数,命名规则同变量,首字母通常大写
  • 参数列表:形参,用于在调用函数时向函数传递参数
    • 任意个数:0-n
    • 多个参数间用逗号分隔
  • 函数体:函数的实现部分,可包含任意代码

【注意】

  • 现阶段访问修饰符均使用 public static
  • 函数定义位置:类的内部,其他函数之外
  • 函数不能嵌套定义
  • 参数列表的(),函数体的{} 均不能省略

三、函数的调用

【调用语法】

  • 方法一:函数名(实参列表);
  • 方法二:数据类型 变量名=函数名(实参列表);

【注意】

  • 函数调用通过函数名来实现
  • 实参与形参必须一一对应(个数和类型)
  • 对于有返回值的函数可通过变量来接收返回值

【按函数结构分类函数】

  • 无参无返回值

    【语法】

    public static void 函数名()
    {
    	//函数体
    }
    

    【调用】

    函数名();

  • 有参无返回值

    【语法】

    public static void 函数名(形参列表)
    {
    	//函数体
    }
    

    【调用】

    函数名(实参列表);

  • 有参有返回值

    【语法】

    public static 返回值类型 函数名(形参列表)
    {
    	//函数体
    	return 返回值
    }
    

    【调用】

    变量名=函数名(实参列表);

【参数传递】

  • 类型
    • 形参:在函数中定义
    • 实参:在主调函数中定义
  • 参数传递方式
    • 值传递(默认):在函数调用时将实参的值的副本传递给形参(调用后实参的值不改变)
    • 引用传递(使用ref):在调用时将实参的地址传递给形参(调用后实参的值会改变)
    • 将数组作为参数传递

【返回值】

函数被调用后,返回给主调函数的值(通过return实现)

【语法】

return 表达式;

【作用】

结束被调函数的执行,返回主调函数,return之后的代码不会被执行

【注意】

  • 每个函数只能有一个返回值
  • 返回值可以是常量、变量或表达式
  • 有返回值的函数中,必须有return;
  • 返回值类型必须与函数定义的返回值类型一致
  • 使用多路条件结构时,必须保证每个分支都包含返回值

四、变量的作用域

【作用域】指某些事物起作用或有效的区域

【变量的作用域】变量的声明周期和作用范围取决于变量声明的位置{}

【分类】

  • 局部变量:内部变量,定义在函数中,只能在函数内部或者{}内部使用
  • 成员变量(全局):定义在类中,函数之外,可以在类的任意函数中使用