---------------------- ASP.Net+Unity开发、.Net培训、期待与您交流! ----------------------
方法
功能:用来重复代码的。当我们在一个程序中反复的写了同样的代码,那一半情况下,我们可以把需要重复写的代码定义在一个方法中,用的时候只需要调用就行了
语法:{访问修饰符}[static] 返回值类型 方法名([参数])
{
方法体;
}
方法名命名规则:
方法名开头大写,参数名开头小写,参数名、变量名要有意义
如何调用方法:
对于静态方法(由static修饰的方法)
1、如果在同一个类中,直接写名字调用就行了
语法:方法名();
2、如果不在同一个类中,要先在方法名前面加上要调用的方法所在的类名称
语法:类名.方法名();举例:Console.ReadLine();
如何退出方法:
return;
举例:
public static string fangfa(strring canshu)
{
fangfati;
}
注:1、一般情况下,方法一般定义在类中
2、如果方法中没有返回值,则返回值类型写void
3、如果没有参数,则小括号()不能少
已经学过的常用的方法:
1、Console.ReadLine();
2、Console.WriteLine();
3、Console.Write();
4、Console.ReadKey();
5、int.Parse(string);
6、Convert.ToInt32(string);
二、参数
变量的作用域(变量的生命周期):
在方法中定义的变量,称为局部变量,其作用域是在从定义开始使用到其所在的大括号(语句块)结束为止
为什么要使用参数?
当被调用者想得到调用者方法中的变量时,则可以让调用者调用这参数的形给被调用者
举例:
调用者:
<span style="white-space:pre"> </span>string canshu="张三"
fangfa(canshu);
被调用者:
<span style="white-space:pre"> </span>public static string fangfa(strring canshu) //形参
{
fangfati;
}
在方法名后面的括号内定义变量,叫做定义这个方法的参数
这里定义的变量用于接收调用者传过来的数据
注:如果一个方法一旦有参数,那么调用者就必须传参数,并且传参数的个数与对应位置上的类型必须一致
三、返回值
为什么要使用返回值?
当调用者想反问方法中的变量时,我们可以通过返回值返回。
举例:
string s=Console.ReadLine();
int i=Convert.ToInt32("22");
为什么方法前面能够定义一个变量收到方法的值,是因为在方法中使用了返回值
只要在方法中返回了值,那么在调用方法中,前面就应该用一个变量来接收方法的返回值
注:一个方法只能有一个返回值
一旦一个方法有返回值,那么在这个方法体中就必须通过return语句返回一个值,并且这个值要与返回值类型是相同的
语法:return 值;
当传入的形参是数组是,只需要传数组的名称就可以了
当调用者需要使用被调用者(方法)中的变量时,使用返回值
当被调用者(方法)需要使用调用者的变量时,使用参数
四、方法的重载
定义:
一般在同一个类中,方法名相同并且方法的参数的个数不同或者对应位置上的类型不同,才能构成方法的重载
注意:方法重载和返回值没有关系
五、利用参数返回值
当需要一个方法返回多个值时,怎么返回? 答:参数
实现步骤:
1、在方法的参数类型前加out,那么传参数的时候,也必须在传入的参数前面加上out,表明这个参数不是传入的值,而是用来传出值的
2、如果参数是以out形式传入的,那么在传入前可以不用赋初值
3、在方法中,对于由out修饰的参数必须赋值,并且必须在使用前赋值
举例:
class Program
{
static void Main(string[] args)
{
//由于在传参的时候前面加了out,所以此处的赋值无意义
int a = 10;
int age = Age(out a);
Console.WriteLine("此时a的值为{0},age的值为{1}",a,age);
Console.ReadKey();
}
public static int Age(out int age)
{
//在使用前,参数必须在方法内先赋值
age = 15;
age = age + 10;
return age;
}
}
out用户传出值,在方法中必须对out修饰的参数进行赋值
ref可以理解成双向传值,也就是说既可以传入值,又可以传出值
static void Main(string[] args)
{
int number = 100;
test(ref number);
Console.WriteLine(number);
Console.ReadKey();
}
static void test(ref int a)
{
a = 500;
}
在传参数的过程中,如果参数中有out或者ref修饰的话,那么改变方法中的参数的值,那么调用者方法中参数的额值也会相应改变
---------------------- ASP.Net+Unity开发、.Net培训、期待与您交流! ----------------------
详细请查看:www.itheima.com