C#中将值类型变量赋值给对象与将对象赋值给值类型变量(装箱与拆箱)
2012-12-02 23:59
295 查看
C#笔试题中,经常会考 到装箱和拆箱的问题。一般都是通过间接的方式来考查,如:问将一个整型数据赋值给一个对象会进行什么操作? (答案是装箱)或通过程序题来考查 ,写出以下程序的输出结果?(答案:a = 17 j=17)
通俗的说法,装箱和拆箱的过程就是值类型与引用类型相互转化的过程。
装箱和拆箱的过程是将值类型视为对象。装箱时,将值类型数据存储于垃圾回收堆中;拆箱时,将值类型数据从对象中取出来。
为什么要进行装箱和拆箱,请举例说明?
答:当进行函数调用时,如果函数的形参为引用类型,但要将值类型变量传递给该函数,那么就要将值类型变量装箱;一个非泛型容器,为了保证通用性,通常将数据类型设为引用类型,在容器中装入值类型数据时就需要装箱。
using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace ConsoleApplication1 { class Program { static void Main(string[] args) { int i = 17; object a = i; Console.WriteLine("a = "+a); int j = (int)a; Console.WriteLine("j = "+j); } } }
通俗的说法,装箱和拆箱的过程就是值类型与引用类型相互转化的过程。
装箱和拆箱的过程是将值类型视为对象。装箱时,将值类型数据存储于垃圾回收堆中;拆箱时,将值类型数据从对象中取出来。
为什么要进行装箱和拆箱,请举例说明?
答:当进行函数调用时,如果函数的形参为引用类型,但要将值类型变量传递给该函数,那么就要将值类型变量装箱;一个非泛型容器,为了保证通用性,通常将数据类型设为引用类型,在容器中装入值类型数据时就需要装箱。
相关文章推荐
- C# 值类型、引用类型、装箱和拆箱、变量和常量
- c# 把一个匿名对象赋值给一个Object类型的变量后,怎么取这个变量? c# dynamic动态类型和匿名类 详解C# 匿名对象(匿名类型)、var、动态类型 dynamic 深入浅析C#中的var和dynamic
- C# 引用类型、值类型与拆箱、装箱
- 黑马程序员——C#枚举 结构体 this关键字 base关键字 值类型 引用类型 装箱和拆箱
- 深入理解 c# 第四章 可空类型的装箱和拆箱行为
- 一道理解c#中对象(引用类型)相互赋值和方法覆盖(overriding)的题目
- [转]C#基元类型、引用类型和值类型以及装箱拆箱
- 总结:CLR Via C#(第五章):值类型与引用类型——装箱和拆箱
- C#的类型转换(2)之装箱拆箱和Nullable
- C#==>类型转换 与 装箱拆箱
- C#中 栈和堆上变量的运行速度, 装箱拆箱速度
- 基本数据类型对象包装类和自动装箱自动拆箱技术
- 变量,常量,引用类型,值类型,枚举类型, 值类型和引用类型的简单区别,类型转换,装箱与拆箱
- 读《.NET(C#):理解值类型/引用类型,装箱/拆箱,Object类》 有感,小白类文
- C#新手入门代码 在控制台中通过输入给一个double类型变量赋值
- C#语言学习--基础部分(十二) --堆,栈,装箱,拆箱,安全数据类型转换:as, is
- 深入C#内存管理来分析值类型&引用类型,装箱&拆箱,堆栈几个概念组合之间的区别
- 17.2015.08.04第十八节课 C#2 (数值类型及调用、引用类型及调用、装拆箱、常量、变量、数据类型转换、算术运算符、赋值运算符、关系运算符、逻辑运算符、字符串的常用方法)
- C#基础知识系列二(值类型和引用类型、可空类型、堆和栈、装箱和拆箱)
- C#面向对象知识点(for-foreach|装箱-拆箱)