- 6
- 0
- 约1.03万字
- 约 61页
- 2015-11-19 发布于广东
- 举报
* * 5.6 值类型与引用类型 Visual C# 2008程序设计 以下示例代码中,修改值类型变量y的值将不会影响x变量的值。 int x; int y = 10; x = y;//变量的值被赋值给了变量x Console.WriteLine(x的值是:{0},y的值是:{1}, x, y); y = 20;//修改y变量的值,但不会影响x变量的值 Console.WriteLine(x的值是:{0}, y的值是:{1}, x, y); 程序执行结果为: x的值是:10,y的值是:10 x的值是:10,y的值是:20 1. 值类型与引用类型 * 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程序设计 在某些情况下,参数在调用方法前无法确定对象
您可能关注的文档
- 新Visual Basic程序设计教程 普通高等教育“十一五”国家级规划教材 教学课件 李雁翎 周东岱 潘伟 yl _12.ppt
- 新Visual Basic程序设计教程 普通高等教育“十一五”国家级规划教材 教学课件 李雁翎 周东岱 潘伟 yl _13.ppt
- 新Visual Basic程序设计教程 普通高等教育“十一五”国家级规划教材 教学课件 李雁翎 周东岱 潘伟 yl _14.ppt
- 新Visual Basic程序设计教程 普通高等教育“十一五”国家级规划教材 教学课件 李雁翎 周东岱 潘伟 yl _15.ppt
- 新Visual Basic程序设计教程 项目式 教学课件 陈秀莉 王体英 课程介绍与项目一初识Visual Basic语言.ppt
- 新Visual Basic程序设计教程 项目式 教学课件 陈秀莉 王体英 项目八设计数据库应用程序.ppt
- 新Visual Basic程序设计教程 项目式 教学课件 陈秀莉 王体英 项目二 vb语言基础.ppt
- 新Visual Basic程序设计教程 项目式 教学课件 陈秀莉 王体英 项目六菜单.ppt
- 新Visual Basic程序设计教程 项目式 教学课件 陈秀莉 王体英 项目七设计文件操作程序.ppt
- 新Visual Basic程序设计教程 项目式 教学课件 陈秀莉 王体英 项目三Visual Basic基本程序控制结构.ppt
- 小区绿化施工协议书.docx
- 墙面施工协议书.docx
- 1 古诗二首(课件)--2025-2026学年统编版语文二年级下册.pptx
- (2026春新版)部编版八年级道德与法治下册《3.1《公民基本权利》PPT课件.pptx
- (2026春新版)部编版八年级道德与法治下册《4.3《依法履行义务》PPT课件.pptx
- (2026春新版)部编版八年级道德与法治下册《6.2《按劳分配为主体、多种分配方式并存》PPT课件.pptx
- (2026春新版)部编版八年级道德与法治下册《6.1《公有制为主体、多种所有制经济共同发展》PPT课件.pptx
- 初三教学管理交流发言稿.docx
- 小学生课外阅读总结.docx
- 餐饮门店夜经济运营的社会责任报告(夜间贡献)撰写流程试题库及答案.doc
最近下载
- DLT5375-2018 火力发电厂可行性研究报告内容深度规定.pdf VIP
- (2026年春新版)人教版八年级生物下册全册教案.doc
- ISO 5173 2009 金属材料焊缝的破坏性试验—弯曲试验(中文版).pdf VIP
- (高清版)DB13(J)∕T 8555-2023 县城特色风貌设计标准.pdf VIP
- 高级政治经济学(蔡继明)6.分工体系与广义价值决定.ppt VIP
- 潍坊亚星新材料有限公司500吨年六氯环三磷腈和500吨年苄索氯铵项目环境影响报告书.pdf VIP
- 最新2026年时事政治题单招及答案(夺冠).docx VIP
- 学校1530安全教育记录(2026年春季期).docx
- [会计理论葛家澍pdf]葛家澍和他的会计时代.docx VIP
- 解读GB 6441-2025《生产安全事故分类与编码》.pptx
原创力文档

文档评论(0)