一、方法(函数)介绍
- 函数就是将一堆代码进行重用的一种机制。
- 方法的定义:看见static就是静态方法
[访问修饰符] [static] 返回值(没有返回值写void,有就写返回值的类型) 方法名([参数列表])
{
方法体;
}
- 命名规则:方法名开头大写,参数名开头小写,参数名、变量名要有意义
- 方法的调用,对于有static修饰的方法,调用有两种方式
- 如果在同一个类中,直接写方法名调用。
- 类名.方法名()
- return可以立即退出方法。没有返回值,可以不写return;有返回值,会加上return。
二、变量的作用域
- 在方法中定义的变量称为局部变量,其作用域从定义开始,到其所在的大括号结束为止。
- 在一个方法中想要访问另一个方法中的变量,有两种解决方法:参数和返回值
三、方法的重载
- 在面向对象的语言中,允许我们在同一个类中定义多个方法名相同、参数列表(参数类型,参数个数)不同的方法,这样的形式我们称为方法重载。调用时编译器会根据实际传入参数的形式,选择与其匹配的方法执行。
- 构成重载的条件:
- 方法名相同。
- 方法参数类型不同或者参数个数不同。
- 在同一个类中。
static void SayHello(string name)
{
Console.WriteLine("我是{0}",name);
}
static void SayHello(int age)
{
Console.WriteLine("我的年龄{0}",age);
}
static void SayHello(string name)
{
Console.WriteLine("我是{0}",name);
}
static void SayHello(string name,string nickname)
{
Console.WriteLine("我是{0},昵称是{1}",name,nickname);
}
四、方法的out参数和ref参数
- out修饰方法的参数了,那么 在方法外面 可以不给这个参数赋值,但是在方法里面必须给这个out修饰符的参数赋初值。参数加out,是把这个方法中的参数的值传到方法外面去了
class Program
{
static void Main(string[] args)
{
int num1;
int num2 = 80;
int numSum = Show(out num1, num2);
Console.WriteLine(num1);
Console.WriteLine(num2);
//out修饰方法的参数了,那么 在方法外面 可以不给这个参数赋值,但是在方法里面必须给这个out修饰符的参数赋初值
//另外,参数加out,是把这个方法中的参数的值传到方法外面去了
}
public static int Show(out int number1, int number2)
{
number1 = 90;
return number1 + 10;
}
}
结果:
- ref用的时候必须要给这个变量赋初值,和out有区别。
- out可以把方法里的值传出去。
- ref可以把值传到方法里,又可以把值传到方法外。
class Program
{
static void Main(string[] args)
{
int number1=10;
int number2 = 20;
int sum=Show(ref number1, ref number2);
Console.WriteLine("{0},{1},{2}",number1,number2,sum);
Console.ReadKey();
//ref 用的时候必须要给这个变量赋初值,和out有区别,
//out可以把方法里的值传出去,
//ref,可以把值传到方法里,又可以把值传到方法外;
}
public static int Show(ref int num1,ref int num2)
{
num1 = 100;
num2 = 200;
return num1 + num2;
}
}
结果: