C#为什么要装箱和拆箱
2024-08-23 01:44:43
来自论坛4楼的回答非常棒,地址:https://bbs.csdn.net/topics/390624164?page=1
内容如下:
道理很简单,按理说C#被设计成一种完全面向对象的语言。因此,包括数字、字符、日期、布尔值等等在内的一切,都是对象。似乎只需要一种方式来对待这些对象就可以了。但是C#不是只停留在学院中和理想中,它必须为性能而妥协,我们知道,对于CPU来说,处理一个完整的对象,需要很多的指令,对于内存来说,又需要很多的内存。如果连整数都是对象,那么性能自然很低。C#于是使用了一种机制,使得这些基本类型在一般的编程中被当作非对象的简单类型处理,在另一些场合,又允许它们被视作是一个对象。这种机制就是装箱和拆箱。装箱后的对象看上去和一个对象一样,拥有方法,可以当作object处理,拆箱后的变量,看上去又如同C语言中的那些变量、结构体一样,可以直接参与运算和处理。
最新文章
- MySQL Performance-Schema(一) 配置篇
- 第五次团队作业——【Alpha版本】随笔汇总
- Emacs 16进制模式
- 蓝牙协议栈中的 OSAL
- Eclipse Error: Unable to set localhost. This prevents creation of a GUID.
- 图论(网络流):COGS 410. [NOI2009] 植物大战僵尸
- Get URL parameters &; values with jQuery
- Beginning Python From Novice to Professional (4) - 演示样本格式字符串
- 推荐5个漂亮的网站html源码
- Mycat 分片规则详解--自然月分片
- Chapter 5 Blood Type——9
- 简易祖玛--canvas
- 4.1、实现4个LED灯同时闪烁
- jmeter配置脚本录制进行抓包并快速分析、定位接口问题
- PyCharm选择性忽略PEP8代码风格警告信息
- HDOJ 2020 绝对值排序
- 03_python_基本数据类型
- FFT自看
- Android下基于SDL的YUV渲染
- POJ2286 The Rotation Game[IDA*迭代加深搜索]
热门文章
- 算法习题---5.12城市正视图<;离散化应用>;(Uva221)*****
- 转 ORA-16191 ";Primary log shipping client not logged on standby
- CA认证以及https的实现
- System.getProperties 获取当前的系统属性
- 【ML】京东人工智能设计神器「羚珑」
- web端自动化——Python的smtplib发送电子邮件
- python虚拟环境的配置: virtualenv 和 virtualenvwrapper-win 的用法
- PHP中的重载技术
- 一个unsigned int 数的二进制表示中有多少个1
- Echarts 不能百分比显示或显示有问题