首页
网页制作
网络编程
脚本专栏
数据库
网站运营
网络安全
平面设计
CMS教程
搜索
建站极客
网络编程
ASP.NET
正文
值类型和引用类型的区别深入理解
所属分类:
网络编程
/
ASP.NET
阅读数: 775
收藏 0
赞 0
分享
区别
:
1、值类型通常被分配在栈上,它的变量直接包含变量的实例,使用效率比较高。
2、引用类型分配在托管堆上,引用类型的变量通常包含一个指向实例的指针,变量通过该指针来引用实例。
3、值类型继承自ValueType(注意:而System.ValueType又继承自System.Object);而引用类型继承自System.Object。
4、值类型变量包含其实例数据,每个变量保存了其本身的数据拷贝(副本),因此在默认情况下,值类型的参数传递不会影响参数本身;而引用类型变量保存了其数据的引用地址,因此以引用方式进行参数传递时会影响到参数本身,因为两个变量会引用了内存中的同一块地址。
5、值类型有两种表示:装箱与拆箱;引用类型只有装箱一种形式。我会在下节以专门的篇幅来深入讨论这个话题。
6、典型的值类型为:struct,enum以及大量的内置值类型;而能称为类的都可以说是引用类型。
7、值类型的内存不由GC(垃圾回收,Gabage Collection)控制,作用域结束时,值类型会自行释放,减少了托管堆的压力,因此具有性能上的优势。例如,通常struct比class更高效;而引用类型的内存回收,由GC来完成,微软甚至建议用户最好不要自行释放内存。
8、值类型是密封的(sealed),因此值类型不能作为其他任何类型的基类,但是可以单继承或者多继承接口;而引用类型一般都有继承性。
9、值类型不具有多态性;而引用类型有多态性。
10、值类型变量不可为null值,值类型都会自行初始化为0值;而引用类型变量默认情况下,创建为null值,表示没有指向任何托管堆的引用地址。对值为null的引用类型的任何操作,都会抛出NullReferenceException异常。
11、值类型有两种状态:装箱和未装箱,运行库提供了所有值类型的已装箱形式;而引用类型通常只有一种形式:装箱。
更多精彩内容
其他人还在看
ASP.NET 水晶报表打印功能实现代码
ASP.NET下的水晶报表打印,据我所知有以下几种办法可以打印
评论 0
收藏 0
赞 0
分享
ASP.Net 图片存入数据库的实现代码
在很多时候,我们有这样的需求:把图片存入到数据库当中。在一些应用程序中,我们可能有一些敏感的资料,由于存储在文件系统(file system)中的东西,将很容易被某些用户盗取,所以这些数据不能存放在文件系统中。
评论 0
收藏 0
赞 0
分享
让Silverlight 2.0动画动起来Making Silverlight 2.0 animation Start(不能运动原因)
Microsoft Expression Blend 2 制作动画个人感觉倒像3DMAX 可以自动捕捉关键帧
评论 0
收藏 0
赞 0
分享
asp.net Reporting Service在Web Application中的应用
由于我们这个项目中使用微软的报表服务(Reporting Services)作为报表输出工具,本人也对它进行一点点研究,虽没有入木三分,但这点知识至少可以在大部分Reporting Service的场景中应用。
评论 0
收藏 0
赞 0
分享
C# 文件上传 默认最大为4M的解决方法
.net中默只能上传小于4m的文件,大于4M将无法显示页面.那么如何设置来使imputfile能上传更大的文件呢
评论 0
收藏 0
赞 0
分享
asp.net 购物车实现详细代码
asp.net 购物车实现详细代码
评论 0
收藏 0
赞 0
分享
asp.net repeater实现批量删除时注册多选框id到客户端
repeater批量删除时注册多选框id到客户端的实现代码
评论 0
收藏 0
赞 0
分享
asp.net aspnetpager分页统计时与实际不符的解决办法
最近分页方面根据实际需要修改了一些函数
评论 0
收藏 0
赞 0
分享
iis 服务器应用程序不可用的解决方法
访问页面时提示 服务器应用程序不可用,大家可以按照下面的方法重新注册下,应该能好点
评论 0
收藏 0
赞 0
分享
asp.net button 绑定多个参数
asp.net button 绑定多个参数的代码
评论 0
收藏 0
赞 0
分享
查看更多
网络赚钱
更多
网上怎么赚钱 网络赚钱需要注意哪些东西
怎么进入微店买东西?微店购物流程图文介绍
网络赚钱的几种模式总结
浅谈一下个人站长领域的灰色地带有多么的暴利
Papi酱首次直播的八大平台是哪些 打赏90万服不服
冲刺双十一 如何做好淘宝双11期间的推广及运营
站长故事
更多
一个年入80W的96年草根站长
其实并非所有草根站长都能驯服社区门户这匹马
作为站长的我们到底需要什么?我们又缺少了什么
写给所有站长:其实没必要参加SEO培训
写给那些曾经想转型却找不到方向的的站长
我对互联网VC的10点看法 知己知彼百战不殆