黑马程序员--函数
方法(函数): 函数就是将一堆代码进行重用的一种机制。函数就是一段代码,这段代码可能有输入的值(参数),可能会有返回值。一个函数就像一个专门做这件事的人,我们调用它来做一些事情,它可能需要我们提供一些数据给它,它执行完成后可能会有一些执行结果给我们。要求的数据就叫参数,返回的执行结果就是返回值。
功能:用来复用代码的,当我们在一个程序中反复的写了同样的代码,那一般情况下,我们可以把需要重复写的代码定义在一个方法中,用的时候只需要调用就行了。
注意:1)方法要定义在类中。
2)如果方法没有返回值,则返回值类型写void。
3)如果方法没有参数,小括号不能省略。
Console.ReadLine();就是一个有返回结果的函数;
Console.WriteLine(“Hello”);就是一个有执行参数的函数,只有告诉WriteLine被打印的数据它才知道如何打印;
int i=Convert.ToInt(32)(“22”);则是一个既有参数又有返回值的函数。
有了函数写代码就像拼积木,C#中的各种各样的技术其实就是通过for、if等这些基础的语法将不同的函数按照一定的逻辑组织起来。
方法的定义: [访问修饰符] [static] 返回值类型 方法名([参数])
{
方法体;
}
在方法名后面的括号内定义变量,叫做定义这个方法的参数。用于接收调用者传过来的数据。
static int max(int i1, int i2) { if (i1 > i2) { return i1; } return i2; }
这样就定义了一个方法。
注意:如果一个方法一旦有参数,那么调用者就必须传参数,并且传参数的的个数、类型与对应位置上的类型必须一致。 当调用者想访问我们方法中的变量时,可以通过返回值返回。
一个方法只能有一个返回值。
方法重载: 一般在同一个类中,方法名相同,并且方法的参数的个数不同或者对应位置上的类型不同,才能构成方法的重载。
注意:方法重载和返回值没有关系。
通过参数返回值(out):
实现步骤:1)在方法的参数类型前加out,那么传参数的时候,也必须在number(变量名)前加out表明这个参数不是传入的,而是用来接收传出值的。 2)如果参数是以out形式传入的,那么在传入前可以不赋初值。 3)在方法中对于由out修饰的参数,必须在使用前赋值,即使不使用也要赋值。
out用于传出值,ref可以理解为双向的,既可以传入,也可以传出。
在传参数的过程中,如果参数有out或ref修饰的话,那么改变方法中的参数变量的值,调用者方法中变量的值也会相应改变。
命名规则:方法名开头大写,参数名开头小写,参数名、变量名要有意义
方法的调用,对于静态方法(由static修饰的),使用时(类名.方法名();)。如果在同一个类中,直接写名字调用就行了
return可以立即退出方法。
以下是函数练习实例
class Program { static void Main(string[] args) { string[] names={"tom","jerry","lucy"}; string s=Join(names,"|"); Console.WriteLine(s); Console.ReadKey(); } static string Join(string[] strs,string seperator) { string result=""; for(int i=0;i<strs.Length-1;i++) { result=result+strs[i]+seperator; } if(strs.Length>0) { result=result+strs[strs.Length-1]; } return result; } }
变量的作用域: 在方法中定义的变量叫局部变量,其作用域从定义开始,到其所在的大括号结束为止。
当被调用者想得到调用者方法中的变量时,则可以让调用者通过参数的形式给被调用者。
string s=”123”; int i=Convert.ToInt32(s);等价于int i=Int.Parse(s);
一个变量一旦定义在方法外,类的里面,就叫做类的字段。这个变量就可以被本类的所有方法所访问,但是要注意,静态方法只能访问静态字段(由static修饰的变量)。
由const修饰的常量不能定义为静态的。
所有方法都可以访问常量。

浙公网安备 33010602011771号