C#中引用类型和值类型详细介绍

类型分类 

C#的值类型包括:结构体(数值类型,bool型,用户定义的结构体),枚举,可空类型。
C#的引用类型包括:数组,用户定义的类、接口、委托,object,字符串。

各类型内存分配情况

数组的元素,不管是引用类型还是值类型,都存储在托管堆上。

引用类型在栈中存储一个引用,其实际的存储位置位于托管堆。为了方便,本文简称引用类型部署在托管推上。

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

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

C#的数据类型

C#的数据类型有三大类: 
1.数值类型 
2.引用类型 
3.指针类型(仅用于非安全代码) 

其中, 
1.1 数值类型包括:结构类型(struct)和枚举类型(enum) 
1.1.1 结构类型有:简单类型和用户自定义结构类型 
1.1.1.1 简单类型有:整型(byte、sbyte、long、ulong、short、ushort、 int、uint)、浮点数类型(float、double)、十进制类型(decimal)、字符类型(char)、布尔型(bool) 

2.1 引用类型又包括:类(class、object、string)、接口(interface)、数组(array)、代理(delegate) 
2.1.1 类包括:用户自定义的类、object基类、字符串类 

成员变量值类型的默认值:

    int类型的默认值是0

    String类型的默认值是null

    double类型的默认值是0.0d

    Integer类型的默认值是null

    Long类型的默认值是null

    long类型的默认值是0L

    float类型的默认值是0.0f

    char类型的默认值是\u0000

    byte类型的默认值是(byte)0

    short类型的默认值是(short)0

本文为下一篇文章 C#Where关键介绍  做准备

猜你喜欢

转载自blog.csdn.net/Ericafyl/article/details/106376347
今日推荐