C# 值类型和引用类型

来源:互联网 发布:代注册阿里云国际版 编辑:程序博客网 时间:2024/05/17 02:29

1、值类型只需要一段单独的内存,用于存放实际的数据。

2、引用类型需要两段内存:第一段存储实际的数据,总是位于堆中;第二段是一个引用,指向数据在堆中的存放位置。

3、值类型和引用类型的数据在内存中的存储位置

   (1)数据不是其他类型的成员

          对于值类型,数据存放在栈里;对于引用类型,实际数据存放在堆里而引用存放在栈里。

    (2)数据是其他类型的成员

         对于值类型数据:是值类型(如结构)的成员则存放在栈里;是引用类型(类)的成员则存放在堆里。

        对于引用类型数据:是值类型的成员则其引用存放在栈里,数据存放在堆里;是引用类型的成员则其引用和实际的数据都存放在堆里。

4、C#中的数据类型各是什么类型?

  在15种预定义类型中除了object,string为引用类型外,其余全为值类型。

  在6种用户自定义类型中除了struct,enum为值类型外,其余全为引用类型。

 

原创粉丝点击