C#Ch4_面向对象程序设计范例.ppt

  1. 1、本文档共66页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
4.3.2 方法的参数传递 1.按值传参 按值传参时,把实参变量的值赋给相对应的形参变量,即被调用的方法所接收到的只是实参数据值的一个副本。当在方法内部更改了形参变量的数据值时,不会影响实参变量的值,即实参变量和形参变量是两个不相同的变量,他们具有各自的内存地址和数据值。因此,实参变量的值传递给形参变量时是一种单向值传递。 值类型的参数在传递时默认为按值传参。string和object虽然是引用型数据,但从表现形式来看,其具有按值传参的效果。 4.3.2 方法的参数传递 【实例4-3】用值传参进行参数值交换 4.3.2 方法的参数传递 2.按引用传参 调用方向方法传递引用型参数时,调用方将把实参变量的引用赋给相对应的形参变量。实参变量的引用代表数据值的内存地址,因此,形参变量和实参变量将指向同一个引用。如果在方法内部更改了形参变量所引用的数据值,则同时也修改了实参变量所引用的数据值。 当值类型和string类型参数要按引用方式传参时,可以通过ref关键字来声明引用参数,无论是形参还是实参,只要希望传递数据的引用,就必须添加ref关键字。 4.3.2 方法的参数传递 【实例4-4】用引用传参进行参数值交换。 (1) 将【实例4-3】Swap方法声明改为引用型参数: public string Swap(ref int x,ref int y) (2) 将【实例4-3】Swap方法调用改为引用型传参: lblShow.Text = s.Swap(ref a, ref b); 自学:通过MSDN求证: string作为引用型,需用ref声明引用传递,否则按值传递。 4.3.2 方法的参数传递 3.输出参数 ref修饰的引用参数在传参前要求先初始化实参。但有时候实参应由方法调用结束后返回,所在在传参前确定其值是没有意义的。这时可以使用输出参数, 输出参数不需要对实参进行初始化,它专门用于把方法中的数据通过形参返回给实参,但不会将实参的值传递给形参。一个方法中可允许有多个输出参数。 C#通过out关键字来声明输出参数,无论是形参还是实参,只要是输出参数,都必须添加out关键字。 4.3.2 方法的参数传递 【实例4-5】用输出参数求文件路径中的目录和文件名。 4.3.2 方法的参数传递 4.引用类型数据的传参 引用类型参数总是按引用传递的,所以引用类型参数传递不需要使用ref或out关键字(string除外),引用类型参数的传递,实际上是将实参对数据的引用复制给了形参。所以形参与实参共同指向同一个内存区域。 【实例4-6】用引用类型数据的传参修改对象值。 4.3.2 方法的参数传递 5.数组型参数 数组也是引用类型数据,把数组作为参数传递时,也是引用传参。 数组作为参数,有两种使用形式: 一是在形参数组前不添加params修饰符,所对应的实参必须是一个数组名; 二是在形参数组前添加params修饰符。所对应的实参可以是数组名,也可以是数组元素值的列表,此时,系统将自动把各种元素值组织到一个数组中。 无论采用哪一种形式,形参数组都不能定义数组的长度。 4.3.2 方法的参数传递 【实例4-7】使用不添加params和添加params修改符的数组传参求数组中的最大值。 4.3.3 方法的重载 在编程时,一般是一个方法对应一种功能,但有时需要实现同一类功能,只是有些细节不同。 例: public int MaxIntTwo(int a, int b) { } public double MaxDouble(double a, double b) { } public int MaxIntThree(int a, int b, int c) { } public int MaxArray(int[] a) { } 允许用同一方法名定义多个方法,这些方法的参数个数或参数类型不同,这就是方法的重载(function overloading)。 4.3.3 方法的重载 方法重载有两点要求: (1) 重载的方法名称必须相同; (2) 重载方法的形参个数或类型必须不同,否则将出现一个“已定义了一个具有相同参数类型的成员” 如果要完成上例相似功能的4个方法,重载方法如下: public int Max(int a, int b) { } public double Max(double a, double b) { } public int Max(int a, int b, int c) { } public int Max(int[

文档评论(0)

1112111 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档