background image

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

 

引言

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

  最后通过一个简单的示例代码说明装箱拆箱带来的性能损耗。

 

声明变量的内部机制

  在.NET 程序中,当你声明一个变量,将在内存中分配一块内存。这块内
存分为三部分:1,变量名;2,变量类型;3,变量值。

  下图揭示了声明一个变量时的内部机制,其中分配的内存类型依据你的
变量类型。.NET 中有两种类型的内存:栈内存和堆内存。在接下来的内容中,
我们会了解到这两种类型的详细内容。

  

栈和堆

  为了明白什么是栈和堆,先让我们看下下面示例代码的内部机制:

view sourceprint?

1 public  void  Method1()

{