博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
C#-老生常谈的 值类型与引用类型
阅读量:6212 次
发布时间:2019-06-21

本文共 673 字,大约阅读时间需要 2 分钟。

特殊的String

说起值类型和引用类型,大家都知道这么个事,很多时候我们会拿String做值类型来做比较,但实际上String虽然是值类型,却表现的有点特别

String示例

看下面的一个例子:

话说string是引用类型,所以str1和str2都指向同一块内存地址,当修改了str1的值,按理str2取值时也会受到影响!

但实际上我们会发现,修改str1值之后,str2的值并没有受到影响

这是因为.Net Framework对string做了特殊处理,当string的内容改变,.NET会重新给它分配一块内存空间存放新的字符串内容,而不是在老的地址上进行改变

所以 str1=“ccc”时(改变str1的值),.Net申请了一块新内存存放 “cccc”,然后返回一个地址给str1,所以对str1的改变不影响str2

运行结果

引用类型

对于其它的引用类型,我们可以看到它们改变的都是同一块内存地址

示例代码

请看下面的例子:

运行结果

总结一下

引用类型

引用类型有五种:类(Class) ,对象(Object),字符串(string) ,委托(Delegate),接口(Interface)

值类型

除引用类型之外的 ,整形(int),boo,byte,struct,enum

区别

值类型的把值存放在他们自身所分配到的内存中,引用类型只是包含指向内存地址的引用(指针)\

本文转自赵青青博客园博客,原文链接:http://www.cnblogs.com/zhaoqingqing/p/3916261.html,如需转载请自行联系原作者

你可能感兴趣的文章
mysql 保留字 冲突
查看>>
格式文件格式bad interpreter: No such file or directory
查看>>
powerdesigner逆向工程,从数据库导出PDM
查看>>
switch语句的基本使用
查看>>
DBCC--CHECKDB--结果收集
查看>>
Java中的锁概念
查看>>
iPhone开发 调用摄像头进行拍照等操作
查看>>
Javascript 坦克游戏源码分享
查看>>
CMMI 是什么东西?
查看>>
android 自定义动画按钮
查看>>
谷歌浏览器双击关闭标签页的扩展插件Pig Toolbox
查看>>
类名.class和getClass()区别
查看>>
TestNG+ReportNG+Maven优化测试报告
查看>>
2017年这个市场价值5000亿 京东豪取六成以上份额
查看>>
苏宁董事长张近东儿子张康阳成国际米兰俱乐部主席
查看>>
浙江义乌外商当志愿者助力春运 一口流利汉语获赞
查看>>
日媒:日本太地町渔协计划7月重启商业捕鲸
查看>>
人社部:加强人才队伍建设 深化事业单位人事制度改革
查看>>
上海豫园新春民俗艺术灯会亮灯 “财神猪”受热捧
查看>>
上海率先成立政府主导的“筛查诊治中心”
查看>>