方法
1.方法的概念
- 方法就是将一堆代码重用的一种机制,类似于C++中的函数。
2.方法的语法
[public] [static] 返回值类型 方法名([参数列表])
{
方法体;
}
注意:
- public : 访问修饰词,可以省略,使用它时代表这个方法是公用的,谁都可以访问。
- static :静态的。
- 返回值类型:int、string、char等,若没有返回值就是void。
- 方法名:遵循Pascal命名规则。
- 参数列表:完成这个方法所必须要提供给这个方法的条件。
3.方法的调用
- 调用方法:
类名.方法名([参数])
- 注意:如果调用同一个类里面的方法,类名可以省略。
调用问题:我们在main( )中调用的一个方法,我们管main( ) 为调用者,而调用的方位为被调用者。
- 通过传递参数。
- 使用静态字段来模拟全局变量。
静态字段不属于任何对象,只属于类, public static 数据类型 _名字
4.return的作用
- 在方法中用以返回值,需要由变量接应。
- 立即结束本次方法。
5.方法的高级参数
out:
- 可以帮助我们在一个方法中返回多个值,不限类型。
- 使用out参数的时候,要求out参数必须在方法内为其赋值,也就是初始化
public static int[] test(int[] nums,out int max)
{
//out参数必须在方法体内初始化
max = 0;
max++;
其他的代码
return max;//在数组类型的方法中返回整型变量
}
static void Main(string[] args)
{
int[] numbers = {1,2,3,4,5};
int i = 0;
int n = test(numbers,out i);
}
ref参数:
- ref参数侧重于将一个变量以参数的形式带到一个方法中进行改变,改变完成后,再将改变后的值带出来。
- 在使用ref参数的时候需要注意:ref参数在方法外必须为其赋值,也就是初始化。
public static void jiafa(ref int s)
{
s += 500;
}
static void Main(string[] args)
{
//ref在使用前需要先初始化变量的值,在方法体外先初始化
int a = 1000;
jiafa(ref a);
Console.WriteLine(a);//输出a=1500
}
params参数:
不定参数个数关键字,如果参数列表还有其他参数,params修饰的参数一定要放到最后一个。
public static void test(string name,params int[] score)
{
int sum = 0;
for(int i = 0;i < score.Lengt;i++)
{
sum += score[i];
}
Console.WriteLine("{0}这次考试的总成绩是{1}",name,sum)
}
static void Main(string[] args)
{
test("张三",99,88,77);
Console.ReadKey();
}
6.方法的重载
概念:方法重载指同一个类中定义的多个方法之间的关系,满足下列条件的多个方法相互构成重载
- 多个方法在同一个类中
- 多个方法具有相同的方法名
- 多个方法的参数不相同,类型不同或者数量不同
注意: 与返回值无关,换句话说不能通过返回值来判定两个方法是否相互构成重载。
7.方法的递归
概念:递归的本质就是自己调用自己。
注意:递归要有开始条件,也要有一个结束条件。
public static int i = 0;
public static void TellStory()
{
Console.WriteLine("从前有座山");
Console.WriteLine("山里有座庙");
Console.WriteLine("庙里有个老和尚和小和尚");
Console.WriteLine("有一天,小和尚哭了,老和尚给小和尚讲了一个故事");
i++;
if(i>=10)
{
return;
}
TellStory();
}
static void Main(string[] args)
{
TellStory();
Console.ReadKey();
}