C#中的方法

一、什么是方法

  1. 方法是一块具有名称的代码,可以使用方法名调用方法,也可以把数据传入或传出方法。

  1. 方法的结构主要包括方法头(返回值类型、方法名、参数列表)和方法体包含如下:

  • 返回值

  • 方法名称

  • 方法的参数列表

  • 方法体

  1. 方法体是一个块,块可以包含以下项目:

  • 本地变量:声明在方法体里的变量

  • 控制流结构:例如分支、循环等

  • 方法调用:在方法里可以调用其他别的方法

  • 内嵌的块:块里包含另一个块

二、本地变量与本地常量

本地变量和字段的区别

本地变量在方法里,字段在类里方法外

var关键字

  1. var关键字是语法的速记,表示任何可以从初始化语句的右边推断出的类型。

void Method01() 
{
    //预定义类型
    int a1 = 10;
    var a2 = 10;//编译器可推断出10为int类型
    
    //用户自定义类型
    MyClass mc1 = new MyClass();
    var mc1 = new MyClass();
    
}
  1. var关键字的重要使用条件

  • 只能用于本地变量,不能用于字段

  • 只能在变量声明并且初始化的时候使用

  • 一旦编译器推断出变量的类型,它就是固定且不能修改的

本地常量

  1. 本地常量特征:

  • 常量在声明时必须初始化

  • 常量在声明后不能改变

  1. 格式:

  1. 生命周期:

  • 声明在方法体或代码块中,并在声明它的块结束的地方失效。

三、方法调用的流程

从一个方法中调用另外一个方法时:

  1. 当前方法的执行在调用点被挂起

  1. 控制转移到被调用方法的开始

  1. 被调用方法执行直到完成

  1. 控制回到发起调用的方法

四、参数

参数就是方法中允许传入和返回值的特殊变量。

形参

形参是本地变量,它声明在方法的参数列表中,而不是在方法体中,必须在方法的代码执行前被初始化。

  1. 格式举例:

  1. 注意点:

  • 形参是变量,有类型有名称,能被读取和写入

  • 和本地变量不同,参数在方法体外定义并在方法开始之前初始化(除了输出参数)

  • 参数列表中可以有任意数目形参声明,用逗号隔开

实参

用于初始化形参的表达式或变量称作实参。

  1. 格式举例:

  1. 注意点:

  • 实参位于调用方法时的参数列表中。

  • 每一个实参必须与对应的形参类型相匹配或兼容。

值参数

  1. 值参数通过把实参的值复制到形参的方式把数据传递给方法。(一种传递参数值的方式)

  1. 代码示例:

  1. 图解示例:

引用参数

  1. 引用参数将会把形参名作为实参的别名,指向相同的内存位置。(一种传递参数值的方式)

  1. 使用引用参数注意点:

  • 必须在方法的声明和调用中都使用ref修饰符

  • 实参必须是变量,在用作实参前必须被赋值。如果为引用类型变量,可以赋值为一个引用或null

  1. 代码示例:

  1. 图解示例:

引用类型用作值参数和引用参数

引用类型用作值参数

  1. 将引用类型作为值参数传递。如果在方法内创建一个新的对象并赋值给形参,将会切断实参与形参之间的关联,并且在方法调用结束之后,新对象也将不复存在。

  1. 代码示例:

  1. 图解示例:

引用类型用作引用参数

  1. 将引用类型作为引用参数传递。如果在方法内创建一个新对象并赋值给形参,在方法结束后该对象依然存在,并且是实参所引用的值。

  1. 代码示例:

  1. 图解示例:

输出参数

  1. 输出参数用于从方法体内把数据传出到调用代码。(输出参数也相当于实参的别名)

  1. 格式参考:

  • 必须在声明和调用中都使用修饰符out

  • 实参必须是变量,而不能是其他类型的表达式,是因为方法需要内存保存返回值

  1. 注意点:

  • 在方法内部,输出参数在能够被读取之前必须被赋值。

  • 在方法返回之前,必须为所有输出参数进行一次赋值。

  1. 代码示例:

  1. 图解示例:

参数数组

  1. 参数数组允许0个或多个实参对应一个特殊的形参。

  1. 格式参考:

  1. 重点:

  • 在一个参数列表中只能有一个参数数组。

  • 如果存在其他参数,参数数组必须在参数列表最后一个。

  • 在声明时需要有修饰符params,在调用时不能有该修饰符

  1. 两种调用方式

  1. 延伸式:使用逗号分割的该数据类型元素的列表。所有元素必须时方法声明中指定的类型。

  • 编译器创建一个一维数组,复制参数列表中的值到该数组中。

  1. 一个该数据类型元素的一维数组

  • 编译器使用用户自己创建的数组。

  1. 值类型和引用类型的数组参数

  1. 数组参数是值类型,那么值被复制,实参不会受方法内部影响。

  1. 数组参数是引用类型,那么引用被复制,实参会受方法内部影响。

  1. 代码示例:

  1. 图解示例:

参数类型总结

五、方法重载

  1. 一个类中拥有多个相同名称的方法就叫方法的重载(method overload)。

  1. 方法重载要求:

  • 方法名相同

  • 参数列表不同(参数类型、个数、不同类型的参数顺序、参数的修饰符)【注意不包含形参名】

  • 与返回值无关!!!

(注:本章学习总结自《C#图解教程》)

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值