[1],数据类型
基元类型:
编译器直接支持的类型. 基元类型是直接映射到Framework类库(FCL)中存在的类型.
例如,C#的int直接映射到System.Int32类型.
int a=0; System.Int32 a=0; int a=new int(); System.Int32 a=new System.Int32();
这四个声明实现的功能是相同的.
基元类型包括:
sbyte(System.SByte),byte(System.Byte),short(System.Int16),ushort(System.UInt16),
int(System.Int32), uint(System.UInt32),long(System.Int64),ulong(System.UInt64),
char(System.Char),float(System.Single),double(System.Double),bool(System.Boolean),
decimal(System.Decimal),string(System.String),
object(System.Object),dynamic(System.Object)
值类型(点击跳转):
值类型的实例在栈上分配,在代表值类型实例的变量中不包含指向实例的指针,
相反,变量中包含实例本身的字段.
因为变量中的值已经直接在栈中,所以没有必要再去堆中去找值,这样也就缓解了托管堆的压力,
并减少了垃圾的回收次数.
整型,浮点型,Decimal ,Bool(布尔),Char字符,DateTime,Enum
引用类型(Object类型和字符串类型):
从托管堆中分配,c#的new操作符返回对象内存地址——即指向对象数据的内存地址.
在栈中保存的是指向堆中的地址,而真实值在堆中.
动态类型(Dynamic):
Dynamic: 可以存储任何类型的值在动态数据类型变量中。这些变量的类型检查是在运行时发生的。
推断类型(var): 经过等号(=)来确定类型
集合: 将一堆数据类型相同或不同的数据放入到一个容器内,该容器就是数组。
数组:内存中开辟的一连串空间。ArrayList集合
Array数组
HashTable集合
List<T>集合
Dictionary<K,V>集合
栈(Stack)代表了一个只有一个出口的后进先出的对象集合。
在列表中添加一项,称为推入元素,从列表中移除一项时,称为弹出元素。
队列(Queue)代表了一个先进先出的对象集合。
当您需要对各项进行先进先出的访问时,则使用队列。
当您在列表中添加一项,称为入队,当您从列表中移除一项时,称为出队。
虚拟表格:
DataTable:是一个临时保存数据的网格虚拟表(表示内存中数据的一个表)。
相关知识点:托管堆和堆栈(点击跳转)
作者:FengYang
博客地址:http://blog.csdn.net/qq_28140365
版权声明:如果感觉文章哪里写的不对或者存在疑问,欢迎留言,共同学习、进步!
蓝色字体为链接