- 1、本文档共60页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
* 5.6 值类型与引用类型 Visual C# 2008程序设计 引用类型变量包含对其数据的引用,引用类型变量赋值的是对对象的引用,而不是复制对象的值,赋值后,两个变量对应的对象是同一个对象。引用类型包括接口、类以及数组。 例:引用同一对象的两Student变量相互影响。 例:引用不同对象的两Student变量相互影响。 1. 值类型与引用类型 * 5.6 值类型与引用类型 Visual C# 2008程序设计 在应用过程中,简单数据类型也可以转化为object类型,转化过程称为装箱;反之,从装箱以后的变量 中提取出值类型的过程则称为拆箱。 以下代码把valueType变量装箱后放到referenceType变量中: int valueType = 0; object referenceType = valueType;//装箱 以下代码则是把上例中已装箱的对象进行拆箱操作: int unBoxing = (int)referenceType;//拆箱,按int类型进行数据提取。 2. 装箱与拆箱 * 5.6 值类型与引用类型 Visual C# 2008程序设计 注意:拆箱操作中,如果装箱的原数据类型与拆箱预期的数据类型不兼容,在编译过程没有语法错误,但运行时将抛出异常: string valueType = “abc”; object referenceType = valueType;//装箱,原始数据不能转化为int类型 int unBoxing = (int)referenceType;//拆箱,按int类型进行数据提取,运行时将抛出异常 此外,由于装箱和拆箱比较耗费CPU资源,所以尽可能避免进行装箱与拆箱过程。 2. 装箱与拆箱 * 5.7 参数的传递 方法在调用时,实参将把值赋值给形参,这个过程称为实参与形参的结合,在赋值过程中,根据变量是值类型还是引用类型,分为按值传递和按引用传递。 Visual C# 2008程序设计 * 5.7 参数的传递 Visual C# 2008程序设计 向方法传递值类型变量意味着向方法传递变量的一个副本。方法内发生的对参数的更改对该变量中存储的原始数据无任何影响。 例:按值传递方式调用方法,但原始数据无任何影响。 1. 按值传递 * 5.7 参数的传递 Visual C# 2008程序设计 当通过值传递引用类型的参数时,有可能更改引用所指向的数据,如某类成员的值。但是无法更改引用本身的值;也就是说,不能使用相同的引用为新类分配内存并使之在块外保持。 例:按引用传递方式调用方法,方法内对数组中的元素进行的修改同样影响方法外的数组。 2. 按引用传递 * 5.7 参数的传递 Visual C# 2008程序设计 对于方法内部,如果修改变量本身引用的对象,则方法内的引用变量的修改不会影响方法外的原始变量的所有数据。 例:按引用方式传递参数,方法内对数组变量引用其他对象,则修改数组元素不影响原始数组。 2. 按引用传递 * 5.7 参数的传递 Visual C# 2008程序设计 在调用方法时,如需要在方法内修改值类型变量后能影响原始变量值,或者需要在方法内修改变量引用的对象后,仍使方法外的变量也自动引用方法体内的新对象,可以明确地使用ref关键字声明方法。 使用ref关键字时,方法签名中的参数列表中,需要使用ref方式传递的参数前,加上ref关键字;在调用方法时,对应实参前也加上ref关键字即可。 3. 使用ref传递参数 * 5.7 参数的传递 Visual C# 2008程序设计 例:使用ref关键字,把值类型的参数传递方式改变成按引用方式传递参数同样的效果。 例:在引用类型参数前使用ref关键字,则方法内设计形参引用新的对象后,原始参数也将引用新的对象。 3. 使用ref传递参数 * 5.7 参数的传递 Visual C# 2008程序设计 在某些情况下,参数在调用方法前无法确定对象,而是在访问体中创建新的对象,此时可以使用out关键字,out关键字的使用方法及应用效果与ref基本一致,但ref的参数在使用前需要初始化,而out关键字对应的参数可以不初始化。 4. 使用out传递参数 * 5.7 参数的传递 Visual C# 2008程序设计 例:在值类型参数前使用out关键字,则方法内对参数值的修改,影响原始参数的值。 例:在引用类型参数前使用out关键字,则调用方法前实参可以不初始化方法内设计形参引用新的对象后,原始参数也将引用新的对象。 4. 使用out传递参数 * 5.7 参数的传递 Visual C# 2008程序设计 o
您可能关注的文档
- Visual Basic程序设计应用教程电子教案&源代码薛晓萍 第8章 第8章 文件操作.ppt
- Visual Basic程序设计应用教程电子教案&源代码薛晓萍 第9章 第9章 程序设计基本结构.ppt
- Visual Basic程序设计应用教程电子教案&源代码薛晓萍 第9章 第9章 绘制图形.doc
- Visual Basic程序设计应用教程电子教案&源代码薛晓萍 第10章 第10章 数据库技术.ppt
- Visual Basic程序设计应用教程电子教案&源代码薛晓萍 第11章 第11章 OLE控件与API函数简介.ppt
- PLC与变频器 教学课件 作者 韩亚军 项目八.ppt
- PLC与变频器 教学课件 作者 韩亚军 项目二.ppt
- PLC与变频器 教学课件 作者 韩亚军 项目九.ppt
- PLC与变频器 教学课件 作者 韩亚军 项目六.ppt
- PLC与变频器 教学课件 作者 韩亚军 项目七.ppt
- 氙气-合金薄膜光电发射过程中的碰撞散射特性研究.docx
- 2025年乡村医生考试题库:农村居民健康素养提升关键知识点试题.docx
- 2025年成人高考《语文》写作素材积累:宗教信仰素材试题.docx
- 2025年小学语文毕业升学考试全真模拟卷(语文综合素养拓展)-作文素材积累与运用.docx
- 2025年小学教师资格考试《综合素质》模拟面试题库:教育科学理论与应用试题及答案试卷.docx
- 2025年消防执业资格考试题库:消防应急救援装备在电力线路火灾应急救援操作试题.docx
- 企业ESG责任履行对经营绩效的影响研究.docx
- 河南省舞阳县居民中医医疗服务使用意愿及影响因素研究.docx
- 2025年专升本艺术概论考试模拟卷(艺术批评理论与实践)——艺术批评的历史发展与现状试题.docx
- 2025年一建机电工程管理与实务考试机电工程技术前沿实务操作试题卷.docx
文档评论(0)