社区
C#
帖子详情
几个c#的概念,望高手解答
carl9081
2007-11-08 10:39:58
值类型、引用类型、堆栈、封箱、拆箱
哪位能帮我详细解答一下,谢谢!
...全文
133
5
打赏
收藏
几个c#的概念,望高手解答
值类型、引用类型、堆栈、封箱、拆箱 哪位能帮我详细解答一下,谢谢!
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
5 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
LH58
2007-11-08
打赏
举报
回复
值类型:
(Value Type),值类型实例通常分配在线程的堆栈(stack)上,并且不包含任何指向实例数据的指针,因为变量本身就包含了其实例数据。其在MSDN的定义为值类型直接包含它们的数据,值类型的实例要么在堆栈上,要么内联在结构中。我们由上图可知,值类型主要包括简单类型、结构体类型和枚举类型等。通常声明为以下类型:int、char、float、long、bool、double、struct、enum、short、byte、decimal、sbyte、uint、ulong、ushort等时,该变量即为值类型。
引用类型:
(Reference Type),引用类型实例分配在托管堆(managed heap)上,变量保存了实例数据的内存引用。其在MSDN中的定义为引用类型存储对值的内存地址的引用,位于堆上。我们由上图可知,引用类型可以是自描述类型、指针类型或接口类型。而自描述类型进一步细分成数组和类类型。类类型是则可以是用户定义的类、装箱的值类型和委托。通常声明为以下类型:class、interface、delegate、object、string以及其他的自定义引用类型时,该变量即为引用类型。
栈区:
(stack)— 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈
堆区:
(heap) — 一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回收 。注意它与数据结构中的堆是两回事,分配方式倒是类似于链表。
装箱,拆箱:
值类型实例到对象的转换,它暗示在运行时实例将携带完整的类型信息,并在堆中分配。Microsoft 中间语言 (MSIL) 指令集的 box 指令,通过复制值类型,并将它嵌入到新分配的对象中,将值类型转换为对象拆箱:
XMUMEEameng
2007-11-08
打赏
举报
回复
http://topic.csdn.net/t/20040103/05/2628435.html
GoodType
2007-11-08
打赏
举报
回复
http://bbs.langsin.com/viewthread.php?tid=1925&extra=page%3D1
这里全都讲有
xcjwxx
2007-11-08
打赏
举报
回复
up
liujb526
2007-11-08
打赏
举报
回复
装箱:就是把值类型转换为引用类型
例:
int i=2;
object o=i;
拆箱:就是把引用类型转换为值类型
例:
int i=2;
object o=i;
int j=(int)o;
建议楼主看看《C#高级编程》
基础概念讲的很详细
C#基础
概念
二十五问
C#基础
概念
二十五问 注:本文部份资料来自网络,如有侵权,请与我联系,我会在第一时间声明引用或将其删除! 当初学 C# 时是找个人大概问了一下数据类型和分支语句就开始做项目了。这两天又全面的看了...
C#面试题
解答
在网上发现了一大堆C#的面试题,感觉对理解C#有很大帮助,就拿过来了。如果能全部正确,估计是大师级别了。主要是这种形式:问题:初步答案:未查资料时的答案(即不开卷)最终答案:查资料后的答案(即开卷)网上...
C++和C#区别
C#能做的,C++不一定都能做,C++能做的,C#也不一定都好做,所以经常看到有人拿这2个语言对比,我觉得确实没什么必要。 C#繁杂的调用Win32 API的方式,确实让人很不舒服,C++这一点做得比它好。但是,C
C,C++,C#三者区别
继承关系是C->C++->C# C++完全向C兼容,C程序几乎不用修改即可在C++的编译器上运行.C++也称为带类的C,在C的基础上增加了许多面向对象的
概念
.虽然是C的扩展,但 并不意味着C功能不如C++,最牛的操作系统是用C写的(不是...
C C++与C#
继承关系是C->C++->C# C++完全向C兼容,C程序几乎不用修改即可在C++的编译器上运行.C++也称为带类的C,在C的基础上增加了许多面向对象的
概念
.虽然是C的扩展,但 并不意味着C功能不如C++,最牛的操作系统是用C写的(不是...
C#
110,566
社区成员
642,567
社区内容
发帖
与我相关
我的任务
C#
.NET技术 C#
复制链接
扫一扫
分享
社区描述
.NET技术 C#
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
让您成为最强悍的C#开发者
试试用AI创作助手写篇文章吧
+ 用AI写文章