方法的定义
方法是一种用于实现可以由对象或类执行的计算或操作的成员。
类的方法主要是和类相关联的动作,它是类的外部界面。对于私有字段来说,外部界面实现对他们的操作一般只能通过方法来实现.
简而言之,方法就是为了达到某种目的而采取的途径,步骤,手段等。
一个方法的返回类型和它的形参列表中所引用的各个类型,必须具有至少与该方法本身相同的可访问性。
方法在类中或结构体中申明,声明时需要指定访问级别,返回值,方法名称以及参数.参数在括号中,并用逗号隔开。
方法的声明可以包含一组特性和private,public,protected,internal 4个访问修饰符的任何一个有效组合, 还可以包含new,
static, virtual, override, sealed, abstract以及 extern等修饰符。
如果以下条件都为真,说明所声明的方法具有一个有效的修饰符组合.
- 该声明所包含的修饰符彼此各不相同
- 该声明最多包含下列修饰符中的一个 : static , virtual , override.
- 该声明最多包含下列修饰符中的一个 : new 和 override.
- 如果该声明包含abstract修饰符, 则该声明不包含下列任意修饰符: static , virtual, sealed 或extern.
- 如果该声明包含private修饰符,则该声明不包含下列任意修饰符 : virtual, override,abstract.
- 如果该声明包含sealed修饰符,则该修饰符还包含override
- 该声明包含一个有效的访问修饰符组合.
一个方法的名称和形参列表定义了该方法的签名(函数名+形参),具体来说,一个方法的签名由它的名称以及它的形参的个数,修饰符和类型组成。返回类型不是方法签名的组成部分,形参的名称也不是方法签名的组成部分。
方法的名称与在同一个类中的声明的所有其他非方法成员的名称都不相同。此外,一个方法的签名不许与在同一个类中声明的所有其他方法的签名都不相同,并且在同一个类中的两个方法的签名不能只有ref 和 out 不同.
方法的参数类型
1,params参数
- 用来指定在参数数目可变时采用的方法参数, params参数必须是一维数组。
2,ref参数
- ref 参数使方法参数按引用传递, 效果是,当控制权传递回调用方法时, 在方法中对参数所做的任何更改都将反映在该变量中。如果使用 ref 参数, 则方法声明和调用方法都必须显式使用 ref 关键字。
3,out 参数
- out 关键字用来定义输出函数, 它会导致参数通过引用来传递,这与ref关键字类似,不同之处在于ref 要求变量必须在值传递之前进行初始化,而使用 out 关键字定义的参数,不用进行初始化即可使用。如果要使用 out 参数,则方法声明和调用方法必须显式使用 out 关键字。
方法的分类
调用非静态时,也可以使用this关键字.
- 方法分为静态方法(含有static修饰符)和非静态方法(不含有static修饰符)。
- 静态方法不对特定的实例进行操作,调用时,需要直接对类名进行调用
- 非静态方法需要通过特定的实例来调用