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、参数传递上的不同。值类型作为参数传递时,不影响本身。引用类型作为参数传递时,会改变最终该变量的值。
随机阅读
- 汽车仪表盘上有个黄色圆圈里面有个感叹号是什么意思 汽车仪表盘有个黄色圆圈带感叹号
- 来福建必吃的10道菜有哪些? 仙游县白切羊肉地址
- 文学经典的当代价值认识看法 怎么评价现代文学?
- 探囊胠箧的读音 庄子《胠箧》文言文全文翻译。
- 如何系统地自学 Python? ge200效果器使用说明书
- 帕金森病家庭护理注意事项有哪些
- 编程提示错误在最后一行 为什么c语言写的代码错误提示在最后一个方括号的下一行
- 下列说法或做法中错误的是 不稳定的铵盐溶液受热分解
- 吉林市中医院地图 从吉林火车站到吉林市中心医院坐公交坐几路车,大概需要多长时间?
- 一个勤奋好学的人作文400字,要求:开头和结尾都是写人,中间的要写事。 一个有耐心的人作文结尾
- 坏男孩联盟成员谁最厉害 正义联盟成员的实力排名是什么?
- 南京市鼓楼区邮编 南京水佐岗49号邮编
- 怎样炒肉最好吃喝什么炒 本溪永丰步行街八宝堂
- 兴化戴南水产村电话 不锈钢丝跟不锈钢焊丝有何区别
- 益气固表是什么意思6 请问什么叫“益气、固表”。。。
- 2017年系统分析师下午题答案 系统分析师问题
- 《双枪老太婆传奇》片头曲 双枪老太婆连续剧主题歌
- 香邑溪谷 曦城花语位置 涿州香邑溪谷最地理位置
- 髌骨高位测量 老师高位髌骨影像怎么测量啊
- 奋斗的青春才有未来评论 怎样的青春才无悔、要怎样奋斗才有好的未来?