c#什么是值类型什么是引用类型 一、数据类型在它自己的内存分配中存储数据,则该数据类型就是“值类型”。值类型包括:1、所有数字数据类型2、Boolean、Char和Date3、所有结构,即使其成员是引用类型4、枚举,因为其基础类型总是SByte、Short、Integer、Long、Byte、UShort、UInteger或ULong二、“引用类型”包含指向存储数据的其他内存位置的指针。引用类型包括:1、String2、所有数组,即使其元素是值类型3、类类型,如Form4、委托扩展资料值类型和引用类型使用注意事项值类型的变量保存到内存的线程的堆栈中;而引用类型的变量会保存到托管堆中,其中这里说的托管堆又可以分为GC堆、LOH堆。其中GC堆、LOH堆是根据创建的对象的大小来分配到不同的堆中的。判断的平衡点是这个对象是否超过85000字节,如果小于85000字节,则系统把对象保存到GC堆中;如果大于或者等于85000字节,则系统保存到LOH堆中(一般LOH创建的对象是数组)。所以托管堆就是指GC堆和LOH堆的集合。net中那些是值类型 哪些是引用类型 int,float等数字都是值类型,还有Datetime,timespan等其他基本都是引用类新。C#值类型和引用类型的区别 1、分配不同。值类型zhidao分配在线程堆栈上(管理由操作系统负责),引用类型分配在托管堆上(管理由垃圾回收器GC负责)。管理指内存空间的分配和释放:变量本身是存储在堆栈上的(无论是值类型变量还是引用类型变量);但是对于实际数据:引用类型存在托管堆上,值类型存在堆栈。2、继承不同。值类型继承自valueType,valueType继承自System.Object;引用类型直接继承自System.Object。专3、释放方式不同。值类型在作用属域内结束时,会被操作系统自释放,减少托管堆压力;引用类型则靠GC。因此值类型在性能上由优势。4、属性不同。值类型是密封的,不能作为基类。引用类型一般具有继承性.5、null上的不同。值类型不能为null,默认初始化为该类型的默认值;引用类型默认初始化为null。6、参数传递上的不同。值类型作为参数传递时,不影响本身。引用类型作为参数传递时,会改变最终该变量的值。
随机阅读
- 战队剑仙李白大龙五杀完整视频 经常连败的张大仙的技术在王者荣耀主播界是什么水平?
- 贵州赤水天岛湖海拔高度是多少? 赤水天岛湖票价
- 广州中学五山校区 曾校长
- 标准大气压的符号 1个标准大气压是什么概念
- 读80天环游地球记录卡 急!!!!!80天环游地球总结
- 中煤新集杨村地下煤气化批准 天然气和煤气比哪个比较贵?
- 2013年农民专业合作社示范社名单 现在我国对于农民专业合作社有哪些扶持政策?
- 故意损坏他人财物罪立案标准 故意损害公私财物罪
- 沙城工业园胜利家居 九江市个体工商户申请营业执照在哪里办
- 新疆阿克苏永安基建 集团 有限责任公司 我是个残疾人
- 201年11月30日为最大跌幅 2011年1月30日是星期几?
- 什么是大气中水七的主要供应者
- 铁与铜硫酸铜正负电极反应式 我有急用 由铜、铁、硫酸铜溶液组成的原电池,负极和正极反应式分别是?
- 请问不锈钢和铝合金之间能否焊接?用什么焊接方式? 不锈钢铝合金电焊加工店怎么样
- 什么是灌溉水利用系数?如何计算灌溉水利用系数? 农业灌溉用水有效利用系数低
- 财务报表分析与财务报告分析的区别 财务报表专题内容分析报告
- 假面骑士龙骑里面的假面骑士铁兵的生存形态是哪集出场的啊! 假面骑士龙骑龙骑生存形态
- 如何看待今年雨果奖评选《三体3:死神永生》惜败《方尖碑之门》? 去沙特打工的壮工是干什么的
- 欧洲模拟卡车2要买车,哪一个牌子卡车好? 欧洲模拟卡车2跑跑货没了
- 妈妈领着孩子购物的图片大全 为什么妈妈不喜欢带孩子出门?