黑马程序员_C#数据类型

C#数据类型分为值类型和引用类型。值类型分为简单类型、结构类型和枚举类型

C#各种数据类型之间的关系:

 

 

 

 

整数类型分为短字节型(sbyte)、字节型(byte)、短整型(short)、无符号短整型(ushort)、整型(int)、无符号整型(uint)、长整型(long)和无符号长整型(ulong)等

实数类型浮点类型和十进制类型

 

 值类型和引用类型的区别:

1) 值类型通常被分配在栈上,它的变量直接包含变量的实例,使用效率比较高。

2) 引用类型分配在托管堆上,引用类型的变量通常包含一个指向实例的指针,变量通过该指针来引用实例。

3) 一个是值COPY,一个是地址COPY。

              值类型           引用类型

内存分配地点分配在栈中分配在堆中

效率效率高,不需要地址转换效率低,需要进行地址转换

内存回收使用完后,立即回收使用完后,不是立即回收,等待GC回收

赋值操作进行复制,创建一个同值新对象只是对原有对象的引用

函数参数与返回值是对象的复制是原有对象的引用,并不产生新的对象

类型扩展不易扩展容易扩展,方便与类型扩展

 

堆和栈的区别:

1) 栈:由编译器自动分配、释放。在函数体中定义的变量通常在栈上。存放值类型。

2) 堆:一般由程序员分配释放。用new等分配内存函数分配得到的就是在堆上。存放引用类型。

装箱和拆箱:

1) 从值类型转换到引用类型:装箱。

2) 从引用类型转换到值类型:拆箱。

posted @ 2013-04-16 17:50  微笑的小鸟  阅读(104)  评论(0编辑  收藏  举报