第二章 深入C#数据类型

一. 值类型和应用类型 

   1.值类型

每个值类型的对象都有一个独立的内存区域用于保存自己的值,值类型数据所在的内存区域称为栈(Stack)。只要在代码中修改它,就会在它的内存区域保存这个值。值类型主要包括基本数据类型(如 int.float.double)和枚举类型。 

    对值类型,不同的变量会分配不同的存储空间,并且存储空间中存储的是该变量的值。赋值操作传递的是变量的值,改变一个变量的值不会影响另一个变量的值。

  2.引用类型

在C#中引用类型主要包括数组,类和接口。

      对引用类型,赋值是把原对象的引用传递给另一个应用。对数组而言,当一个数组引用赋值给另一个数组引用后,这两个引用指向同一个数组,也就是指向同一块存储空间

二. 结构

  1.结构的定义

  访问修饰符  struct 结构名{

   结构体

   }

   结构的定义有以下特点

 a. 结构中可以有字段,也可以有方法;

 b.定义时,结构中的字段不能被赋值;

2.结构的使用

 结构的构成和类相似。在使用结构时,要注意以下几个方面

a.可以不用new,直接定义结构的对象即可;

b.声明结构的对象后,必须给结构的成员赋初值;

  3.结构的使用经验

结构是值类型,声明结构变量就存储一个结构的新副本,即系统要开辟一块新的存储空间,因此结构用得越多所消耗的存储空间就越多

 三. 装箱和拆箱

 将值类型转换为引用类型的过程称为装箱,反之称为拆箱;

 例:

   static void Main(string[] args){

 int i=123;

object h=i;     //装箱

int j=(int)h;      //拆箱

}

原文地址:https://www.cnblogs.com/1998A/p/8714365.html