C#笔记(类型)2
类型是一种模板
可以把类型想象成一个用来创建数据结构的模板。模板本身不是数据结构,但它详细说明了由该模板构造的对象的特征。
如:int i_a,short s_a
预定义类型
C#定义了16种预定义类型,其中13种简单类型3种是非简单类型(string,object,dynamic)
所有的预定义类型都映射到底层的.NET类型。
用户定义类型
由如下几种class,struct,array,enum,delegate,interface
类型通过类型声明创建。使用用户定义类型是一个两步过程,必须先声明类型,然后实例化该类型的对象。
如图可以很好的理解预定义类型和用户定义类型的区别
值类型和引用类型
值类型只需要一段单独的内存,用于存储实际的数据。
引用类型需要两段内存:
第一段存储实际的数据,它总是位于堆中
第二段是一个引用,指向数据在堆中的存放位置
C#的类型分类
可以看出预定义类型中的三种非简单类型都是引用类型而其他为值类型