一.object

所有类型的基类,是个类,引用类型

基于里氏替换原则,用object装所有对象

可以用来表示不确定类型,作为函数参数类型.

class Son
{public void Speak(){}
}//使用时,引用类型常用as转换
object o = new Son();
if(o is Son)
{Son s = o as Son;s.Speak();
}object o2 = 1;//装int引用类型
//值类型使用时要强转
int i = (int)o2;object str = "123";
//以下两种转换方式都可以
string str2 = str.ToString();
string str3 = str as string;object arr = new int[10];
//数组转换方式有两种
int[] ar = arr as int[];
int[] ar2 = (int())arr;

二.装箱拆箱

以上内容,

用引用类型(如object)容器存放值类型时,称为装箱.-栈内存迁移到堆内存.

把引用类型转换为值类型,是拆箱.-堆内存迁移到栈内存.

因此内存迁移增加了性能消耗.

"当一个值类型转换为对象类型时,则被称为 装箱;另一方面,当一个对象类型转换为值类型时,则被称为 拆箱"-菜鸟教程

好处:可以结合变长参数使用,让函数的参数可以为任何值,使用时再转换.

参考资料<唐老狮C#教程>

[C#复习向整合]object与装箱拆箱相关推荐

  1. C#装箱,拆箱和强制转换(转)

    出处:https://www.cnblogs.com/fengjiulin110120/p/6605739.html 关系: 强制转换就包含有装箱拆箱操作,装箱就是把值类型转换成引用类型,反之就是拆箱 ...

  2. .Net装箱拆箱编程实例

    .Net装箱拆箱编程实例 一 装箱是将值类型转换为引用类型 :拆箱是将引用类型转换为值类型. 利用装箱和拆箱功能,可通过允许值类型的任何值与Object 类型的值相互转换,将值类型与引用类型链接起来. ...

  3. 6个重要的.NET概念:栈,堆,值类型,引用类型,装箱,拆箱

    引言 本篇文章主要介绍.NET中6个重要的概念:栈,堆,值类型,引用类型,装箱,拆箱.文章开始介绍当你声明一个变量时,编译器内部发生了什么,然后介绍两个重要的概念:栈和堆:最后介绍值类型和引用类型,并 ...

  4. CLR via C# 中关于装箱拆箱的摘录

     装箱: 为了将一个值类型转换成一个引用类型,要使用一个名为装箱(boxing)的机制.下面总结了对值类型的一个实例进行装箱操作时在内部发生的事情. 1.在托管堆中分配好内存.分配的内存量是值类型的各 ...

  5. 反射、装箱拆箱、ArrayList与Array的区别 - 天生舞男 - 博客园

    反射.装箱拆箱.ArrayList与Array的区别 Posted on 2005-09-11 23:11 天生舞男 阅读(125) 评论(0) 编辑 收藏 引用 网摘 所属分类: SPS 1 什么是 ...

  6. 第十六节 装箱拆箱 类和结构

    View Code 案例1:装箱拆箱class Program{/// <summary>/// 装箱,拆箱/// </summary>/// <param name=& ...

  7. java 装箱 拆箱的作用_Java中的装箱拆箱

    一)  装箱与拆箱 Java中有概念是一切皆对象,因为所有的类都默认继承自Object.但是,对于数据类型是个例外,如short,int,long,float,double, byte,char,bo ...

  8. C# 装箱拆箱 以及性能方面的问题

    C#中的拆箱与装箱_夜槿笙歌的博客-CSDN博客_c#拆装箱 1.什么是拆箱和装箱 在C#中,值类型是直接将数据存储在栈空间中:而引用类型是将数据存储在堆空间中,同时在栈空间中存储一个对该数据的引用. ...

  9. java自动装箱拆箱深入剖析

    这个是jdk1.5以后才引入的新的内容,作为秉承发表是最好的记忆,毅然决定还是用一篇博客来代替我的记忆:  java语言规范中说道:在许多情况下包装与解包装是由编译器自行完成的(在这种情况下包装成为装 ...

最新文章

  1. 来自51CTOHCNP3期一位技术小白的内心独白
  2. 初始化Spring Bean:Bean初始化有哪些方式?
  3. 前端学习(1328):服务器基础概念
  4. 更新版 | GPU CUDA 进阶课程
  5. python自动数据结构_Python 数据结构
  6. 乐观锁的颗粒度_mysql「锁」
  7. java自行车起源_自行车的起源
  8. Volley(五)—— 自定义Request
  9. 2022.04.13【读书笔记】|10X单细胞转录组分析流程介绍
  10. 系统盘清理,便携小助手一键清理系统垃圾
  11. WordPress中用户头像不显示,如何解决
  12. 403 Forbidden nginx/1.6.2
  13. 为什么要特征标准化及特征标准化方法
  14. 二手车微信小程序来袭
  15. 有趣的黑掉卫星Hack-A-Sat CTF比赛——模拟卫星视角beckley
  16. 速腾 RS-Bpearl 显示点云
  17. IT行业基础知识:云计算到底是什么
  18. 最长递增子序列问题 nyoj 17单调递增最长子序列 nyoj 79拦截导弹
  19. DockerCompose从零基础讲解到玩转它!
  20. 基于粒子群算法的冷热电三联供综合能源系统优化调度

热门文章

  1. 自建连接池,通过动态代理增强getConnection()方法,使其调用用close()方法时具有返回连接的功能
  2. yql failed_YQL的测试帖子
  3. 移动端html怎么调试工具,移动端网页开发调试神器Eruda的介绍与使用技巧
  4. 强化学习系列 - 刘建平Pinard
  5. 网页端如何实现点击链接跳转到QQ(手机QQ)打开会话
  6. Centos7部署ganglia监控
  7. imessage_如何防止某些人知道您已阅读他们的iMessage
  8. android 代码卸载和安装应用
  9. 百度搜索链接中的汉字转码
  10. 收费站可以用计算机吗不会算,全国首个高速收费计算器上线!ETC过路费终于算明白了...