A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 心动行动 中级黑马   /  2013-8-22 21:12  /  1323 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

c#中数据类型主要分为2大类:1值类型 2引用类型
C#中值类型包括简单类型、自定义结构类型、枚举类型(结构类型包括简单类型)
        简单类型包括(整型、浮点型、小数型、字符型、布尔型)
        自定义结构类型struct
        枚举类型
C#中引用类型包括类类型、数组类型、接口类型、委托类型。
        类类型包括 object类和string类
1数组的元素,不管是引用类型还是值类型,都存储在托管堆上。

2引用类型在栈中存储一个引用,其实际的存储位置位于堆。

3值类型总是分配在它声明的地方:作为字段时,跟随其所属的变量(实例)存储;
   作为局部变量时,存储在栈上。

4值类型在内存管理方面具有更好的效率,并且不支持多态,适合用作存储数据的载体;
   引用类型支持多态,适合用于定义应用程序的行为。

装箱  将任值类型类型转换为对象类型
拆箱  将对象类型转换为值类型  

1.将一个值类型变量赋给另一个值类型变量时,将复制包含的值。
        引用类型变量的赋值只复制对对象的引用,而不复制对象本身。

2.值类型不可能派生出新的类型:所有的值类型均隐式派生自 System.ValueType。但与引用类型相同的是,结构也可以实现接口。       

3.值类型不可能包含 null 值:

4.每种值类型均有一个隐式的默认构造函数来初始化该类型的默认值。

栈是编译期间就分配好的内存空间,因此你的代码中必须就栈的大小有明确的定义;

    局部值类型变量、值类型参数等都在栈内存中。


堆是程序运行期间动态分配的内存空间,

    你可以根据程序的运行情况确定要分配的堆内存的大小。


2 个回复

正序浏览
感谢分享ing
回复 使用道具 举报
值得学习ing!
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马