1、方法
方法是将代码进行重用的机制,可能有参数,可能有返回值。
语法
[访问修饰符] [static] 返回值类型 方法名(参数列表)
{
方法体;
}
注意 方法定义在类中
方法如果没有返回值,则返回值类型是void,如果 有返回值,在方法体中需要使用return 语句
来返回一个值。
方法名一般使用pascal命名法。
如果使用了static关键字,那么在同一个类中直接使用方法名就可以调用方法
方法的重载: 即方法名相同,参数类型或者参数个数不同,返回值的类型不同并不能构成方法的
重载。
2、参数
方法中定义的变量多为局部变量,该变量的作用域开始于定义处,结束于语句块的结束大括号处。如果
一个方法要访问另一个方法中定义的变量,该怎么办呢,这就是参数的作用。
在方法定义语法中定义的参数叫做形参,用于接收调用者传递过来的参数,调用者传递给被调用者的参
数为实参
如public static void methodA ()
{
int a = 5;
methodB(a);//methodA方法调用methodB方法时传递给methodB的参数a就是一个实参。
这个参数的数据类型必须和methodB方法中要求的参数的数据类型一致
}
public static void methodB (int number) //number就是一个形参
{
}
参数的修饰符
不加修饰符,参数的传递方式默认为值传递的,也就是说调用者调用方法后,传递给方法的是一个实
参的副本,方法对这个参数的任何修改都不会影响原来的实参
比如上面methodA()方法调用methodB()方法,将变量a传递给了methodB,methodB方法体 中队参数a
的任何操作结果都不会改变methodA中a变量的原始值。
out 在参数前加一个out修饰符,用于定义一个输出参数,方法在退出前必须对这个参数赋值
out相对于return的好处在于,可以通过out修饰符让一个方法返回多个值,而不是return的单个
值
out修饰的藏书在使用前可以不用初始化。
ref 在参数前加一个ref修饰符,用于定义一个引用参数,指示传递给方法的是一个引用类型,这和
值传递不同,对引用类型参数的操作会影响实参。
如public static void methodA ()
{
int a = 5;
methodB(ref a);
}
public static void methodB (ref int number)
{
}
methodA调用methodB方法,并将a变量作为一个引用传递给了methodB,那么methodB方法体中队参
数的任何修改都会影响到methodA中变量a的值
注意 如果在方法的参数定义中使用了out和ref修饰符,那么调用者在调用方法时,在相应的参数
位置前也要指定修饰符
params修饰符 支持参数数组,把可变数量的参数作为一个逻辑参数传递给方法。可以理解为这个
修饰符是自动让参数存储在一个不定长的列表里,我们在调用方法时,传递几个参数,编译器自动将这些参
数组装成一个数组,
console.writeline()方法中就使用了这个参数修饰符
注意,如果方法的参数列表中使用了这个修饰符,那么这个参数必须放在参数列表中的最后一个。