网站大量收购独家精品文档,联系QQ:2885784924

Visual C# 2005程序设计教程 教学课件 作者 978 7 302 19477 4 ch07.pptVIP

Visual C# 2005程序设计教程 教学课件 作者 978 7 302 19477 4 ch07.ppt

  1. 1、本文档共12页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
在小册子 * AutoCAD计算机辅助设计 C#程序设计教程 清华大学出版社 第7章 方法 本章要点: 方法的声明 方法的参数传递 方法的重载 操作符重载 7.1 方法的声明 方法应当声明在类的内部。它的声明格式为: 方法修饰符 返回类型 方法名(方法参数列表) { 方法实现部分; }; 方法修饰符主要有new、public、protected、internal、private、static、virtual、sealed、override、abstract和extern等几种,其中: static:静态方法,类似于静态属性 virtual:虚拟方法, external:外部方法 7.2 方法的参数 任何方法都包含数量不一的参数。方法参数的参数包含在参数列表中,该列表中的参数称为形式参数,调用这个方法时提供的参数叫实(值)参数, 除参数个数外,按照传递方式的不同,参数还分为不同的类型,C#支持四种类型的参数,分别为: 值类型:不含任何修饰符; 引用类型:使用ref修饰符声明; 输出参数:使用out修饰符声明; 参数数组:使用params修饰符声明。 7.2 方法的参数 7.2.1 值类型参数传递 采用值传递方式进行传递时,编译器首先将实参的值做一份拷贝,并且将此拷贝传递给被调用方法的形参。可以看出这种传递方式传递的仅仅是变量值的一份拷贝,或是为形参赋予一个值,而对实参并没有做任何的改变,同时在方法内对形参值的改变所影响的仅仅是形参,并不会对定义在方法外部的实参起任何作用。C语言中经典的Swap函数说明的既是这个问题。 7.2 方法的参数 7.2.2 引用类型参数传递 引用类型传递方式下,方法的参数以ref修饰符声明。传递的参数实际上是实参的引用(索引),这种情况下形参和实参虽是两份相同值,但这些值本身并不表示目标数据,而是指向目标数据的引用,访问时通过这两个相同的引用找到的值理所当然的是同一数据值。所以在方法中的操作都是直接对实参所对应的数据进行的,而不是在方法中又从新定义一个新的引用;能够利用这种方式在方法调用时可以实现参数的双向传递即在方法内对参数的修改将被反应到方法的外部。 为了传递引用类型参数,必须在方法声明和方法调用中都明确地在参数前指定ref关键字,并且实参变量在传递给方法前必须进行初始化。 7.2 方法的参数 7.2.3 输出类型参数传递 输出参数以out修饰符声明。和ref类似,他也是直接对实参进行操作。在方法声明和方法调用时都必须明确地指定out关键字。out参数声明方式不需要变量传递给方法前进行初始化,因为他的含义只是用作输出目的。但是,在方法返回前,必须对out参数进行赋值。该类型参数通常用在需要多个返回值的方法中。 7.2 方法的参数 7.2.4 数组类型参数传递 方法的参数中可以包含数组,但如果包含有数组那么数组必须在参数表中位列最后且只允许一维数组。数组型参数不能再有ref或out修饰符。 7.3 静态方法 使用static类型修饰符的方法称为静态方法,静态方法和非静态方法的区别是:静态方法属于类所有,非静态方法属于用该类定义的对象所有。从内存映象的角度来看,用户在通过类定义自己的对象时,对每一个对象,系统都会在内存中给这个对象开辟一个区域,并将这个类的非静态成员存入。因此,每一个对象都有自己的非静态方法,这些非静态方法是多个副本;对于静态成员,无论定义多少个对象,系统在内存中都只开一个内存空间,所有对这个静态方法的访问都是只对这一个副本访问。 非静态方法可以访问对象中包括表态成员在内的所有成员,而静态方法则只能访问类中的静态成员 7.4 方法的重载 方法的重载既是函数的重载,重载允许一组具有相似功能的函数具有相同的函数名,只不过他们的参数类型或参数个数略有差异。 类的方法的重载也是类似的,类的两个或两个以上的方法,具有相同的方法名,只要他们使用的参数个数或是参数类型不同,编译器变能够根据实参的不同确定在哪种情况下调用哪个方法,这就构成了方法的重载。 7.5 外部方法 C#中使用extern修饰符来声明在外部实现的方法,常用于系统API函数的调用。 extern 修饰符的常见用法是在使用 Interop 服务调入非托管代码时与 DllImport 属性一起使用;在这种情况下,该方

您可能关注的文档

文档评论(0)

开心农场 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档