C#基础-类型强制转换,拆箱,装箱

原创 2013年12月02日 21:52:51
一、装箱和拆箱
装箱就是 将值类型转换为引用类型。拆箱就是 将引用类型转换为值类型。
比如我们非常常用的 .ToString() 方法,就是典型的一个装箱的过程。

再如下面的例子:

int i=10;
object y=(object) i ; //这就是装箱
int x=(int)y; //这是拆箱。

二、对象的相等比较
在C#中,有四种比较相等的方法。
1、ReferenceEquals() 该方法是一个静态方法,用来判断两个引用是否指向同一个实例。也就是是否 指向同一个内存地址,如果是,则返回true ,否则返回 false。
2、虚拟的 Equals() 方法。因为是虚拟的方法,所以可以重写。这样它既可以用来比较对象,也可以 比较值。
3、静态的 Equals() 方法,这与虚拟的Equals()方法作用相同,只是带有两个参数,并对其进行比较 。这个方法可以处理两个对象中有一个是null 的情况,当有一个是null 的时候,就会抛出异常。
4、比较运算符 == 我们最好把这种比较看做是严格值比较和严格引用比较之间的中间选项。但注意 ,通过这样的方式比较字符串的时候,而不是引用。

C#--三行代码带你理解神秘的拆箱和装箱

一、在说拆箱和装箱之前的准备知识首先,我们需要知道c#中有两种类型:值类型和引用类型 名称 值类型 引用类型 表示类型 基本类型 类,数组,接口 ,C#特有的委托. 存储内容...
  • qq_32452623
  • qq_32452623
  • 2016年12月29日 17:22
  • 2945

Java基本类型的装箱与拆箱

Java基本类型的装箱与拆箱今天,我抽空做了一道选择题,是关于这方面,结果一不小心就错了。。。 题目是这样的:在jdk1.5的环境下,有如下4条语句:Integer i01 = 59; int i0...
  • second24
  • second24
  • 2017年06月22日 19:45
  • 308

C#装箱和拆箱(Boxing 和 UnBoxing)

1、什么是装箱和拆箱? 简单来说:       装箱是将值类型转换为引用类型 ;拆箱是将引用类型转换为值类型。(网上广为流传)  C#中值类型和引用类型的最终基类都是Object类型(它本身是一个引用...
  • qiaoquan3
  • qiaoquan3
  • 2016年05月17日 21:44
  • 2946

C# - 再谈C#的装箱和拆箱

上一篇写了一下装箱拆箱的定义和IL分析,这一篇我们看下使用泛型和不使用泛型引发装箱拆箱的情况 1. 使用非泛型集合时引发的装箱和拆箱操作  看下面的一段代码: 1 2 3 ...
  • honey199396
  • honey199396
  • 2016年08月31日 11:35
  • 532

.NET的装箱与拆箱内幕

装箱与拆箱是.NET中非常重要的概念。 装箱是将值类型转换成引用类型,或者是实现了接口的值类型。装箱将数据存储的空间由Thread stack转存到了Managed Heap中。凡是在Managed ...
  • xxdddail
  • xxdddail
  • 2014年07月04日 16:49
  • 1602

简述:C# 装箱和拆箱

一、概念简述: 在装箱拆箱之前简单说一下值类型、引用类型: 值类型:原类型(Sbyte、Byte、Short、Ushort、Int、Uint、Long、Ulong、Char、Float、Doub...
  • u014076894
  • u014076894
  • 2015年04月16日 13:35
  • 1071

基本类型与包装(装箱)类型的区别

Java的类型分为两部分,一个是基本类型(primitive),如int、double等八种基本数据类型;另一个是引用类型(reference type),如String、List等。而每一个基本类型...
  • Cynthia9023
  • Cynthia9023
  • 2013年12月19日 13:51
  • 1614

装箱和拆箱的区别与详解

深入剖析Java中的装箱和拆箱   自动装箱和拆箱问题是Java中一个老生常谈的问题了,今天我们就来一些看一下装箱和拆箱中的若干问题。本文先讲述装箱和拆箱最基本的东西,再来看一下面试笔试中经常遇...
  • LiMing_0820
  • LiMing_0820
  • 2016年10月17日 15:45
  • 1377

装箱和拆箱 VS 显示转换和隐式转换

一:显示转换和隐式转换 XmlDocument继承 XmlNode,把父类 XmlNode转换为子类对象需要 显示转化也就是强制转换; 子类转换为父类,自动就隐式转换了。比如说,香蕉是水果,把香蕉...
  • wangsen2235068
  • wangsen2235068
  • 2011年08月29日 17:13
  • 1670

深入理解C#的装箱和拆箱、使用非泛型集合时引发的装箱和拆箱操作

装箱和拆箱是值类型和引用类型之间相互转换是要执行的操作。  1. 装箱在值类型向引用类型转换时发生 2. 拆箱在引用类型向值类型转换时发生 光上述两句话不难理解,但是往深处了...
  • pengpegV5yaya
  • pengpegV5yaya
  • 2016年03月16日 23:02
  • 1576
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:C#基础-类型强制转换,拆箱,装箱
举报原因:
原因补充:

(最多只允许输入30个字)