《C#程序设计基础教程与实训_陈广C09.pptx》由会员分享,可在线阅读,更多相关《C#程序设计基础教程与实训_陈广C09.pptx(17页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、 方法是类中用于执行计算或其他行为的成员函数,用于把程序分解为小的单元。用方法构造代码有以下优点。(1)方法允许将程序分为不连续的逻辑单元。调试单独的单元与调试不包含方法的整个程序相比要容易得多。(2)可以在其他程序中使用为某个程序开发的方法,而通常只需要进行少量修改,甚至不需修改。第1页/共17页9.1 方法的定义方法定义的具体格式如下:方法修饰符 返回类型 方法名(形参列表)方法体 void StartGame()/没有参数void PlaySound(string path)/带一个参数int Max(int a,int b,int c)/带多个相同类型的参数void GetInfo(s
2、tring Name,int lever)/带多个不同类型的参数7.1.1 一维数组的声明与创建第2页/共17页9.2 方法的调用在C#中,方法的调用主要采用以下2种格式。格式一:表达式=方法名(实参列表)。格式二:方法名(实参列表)。使用带返回值的方法时往往使用格式一来调用方法。如果不需要使用方法的返回值,则可以采用格式二来调用方法,这时将执行方法的所有操作而忽略返回值。9.2.1 方法调用格式第3页/共17页9.2 方法的调用 在定义方法时,方法名后面的圆括号中的变量名称为“形参”。在调用方法时,方法名后面圆括号中的表达式称为“实参”。形参和实参都是方法的参数,它们的区别是一个表示声明时的
3、参数,另一个表示调用时的参数。9.2.2 形参与实参第4页/共17页9.3 方法的参数传递机制 从参数的传递机制来说,C#中方法的参数可以有以下4种类型。(1)值参数,不含任何修饰符。(2)引用型参数,以ref修饰符声明。(3)输出参数,以out修饰符声明。(4)数组型参数,以params修饰符声明。第5页/共17页9.3 方法的参数传递机制 声明时不带任何修饰符的参数是值参数。当形参是值参数时,实参变量对形参变量的数据传递是“传值”,在调用方法时将实参的值赋给形参。9.3.1 值参数(Value Parameter)第6页/共17页9.3 方法的参数传递机制【例9-2】9.3.1 值参数(V
4、alue Parameter)图9.1 方法执行前图9.2 方法开始执行第7页/共17页9.3 方法的参数传递机制用ref修饰符声明的参数为引用参数。和值参不同的是,实参变量对形参变量的数据传递是“传引用”。引用型参数并不开辟新的内存区域。当利用引用型参数向方法传递形参时,编译程序将把实际值在内存中的地址传递给方法,使得实参的存储位置与形参的存储位置相同。在执行一个方法调用时,形参的值如果发生改变,将会影响在方法调用中给出的实参的值。9.3.2 引用参数(Reference Parameter)第8页/共17页9.3 方法的参数传递机制 用out修饰符声明的参数称为输出参数。输出参数与引用参数
5、类似,也不开辟新的内存区域,当在方法体中为输出参数赋值时,就相当于给实参变量赋值。与引用参数的差别在于,调用方法前无须对变量进行初始化。9.3.3 输出参数(Output Parameter)第9页/共17页9.3 方法的参数传递机制 用params修饰符声明的参数称为数组参数。数组型参数允许向方法传递个数变化的参数。也就是说,调用方可以传递一个属于同一类型的数组变量,或任意多个与该数组的元素属于同一类型的变量。需要注意以下3点:(1)如果形参列表中包含了数组型参数,那么它必须在参数列表中位于最后。(2)数组型参数只允许是一维数组。(3)数组型参数不允许使用ref和out修饰符。9.3.4 数
6、组参数第10页/共17页9.4 方法的重载 方法签名由方法名称和一个参数列表(方法参数的顺序和类型)组成。只要签名不同,就可以在一种类型内定义具有相同名称的多种方法。当定义2种或多种具有相同名称的方法时,就称为重载。第11页/共17页9.4 方法的重载方法的重载需要注意以下几点。(1)如果2个方法只是返回类型不一致,则不构成重载条件。(2)如果一个方法采用 ref 参数,而另一个方法采用 out 参数,则无法重载这2个方法。(3)如果一个方法采用 ref 或 out 参数,而另一个方法不采用这2类参数,则可以进行重载。第12页/共17页9.5 变量的作用域及可见性 作用域是标识符在程序中有效的
7、范围。可见性则是从另一角度表示标识符的有效性,标识符在某个位置可见,表示该标识符可以被使用。可见性和作用域是一致的。C#中的变量从作用域上来说可分为局部变量和成员变量。成员变量在类中声明,它的可见性由可见性标识符控制,可以是类的内部,也可以是类的外部(本节不讨论成员变量在类外部的可见性)。而在方法中声明的则是局部变量。第13页/共17页9.5 变量的作用域及可见性1 class Program/用class关键字声明的是类2 /-a的作用域从此开始3 static int Mul(int c)/-c的作用域从此开始4 5 return a*c;6 /-c的作用域到此结束7 static void Main(string args)8 9 int b=3;/-b的作用域从此开始10 Console.WriteLine(Mul(b);11 /-b的作用域到此结束12 static int a=2;/成员变量13 /-a的作用域到此结束第14页/共17页9.6 方法的递归调用第15页/共17页实训指导-手绘时钟 如图所示,点P到圆心的距离为半径r的0.7倍。则点P的x轴坐标值为:x=r*0.7*cosy轴的坐标值为:y=r*0.7*sin第16页/共17页谢谢您的观看!第17页/共17页
限制150内