美文网首页
C# 值类型和引用类型的区别

C# 值类型和引用类型的区别

作者: 串串香 | 来源:发表于2017-10-17 11:51 被阅读0次

    C#里把数据类型分为两大类,值类型和引用类型

    值类型

    值类型就是包含实际数据的量,当定义一个值类型的变量时,C#会根据声明的类型,以栈的方式分配存储区给这个变量,变量的读写操作就直接在这块区域进行
    值类型包括 :基本数据类型(int double 等),结构,枚举

    引用类型

    一个引用类型的变量,不存储他们所代表的真实数据,而是存储真实数据的引用。引用类型分两步创建,1,首先在栈上创建引用变量,然后在堆上创建对象本身,再把这个内存的句柄(内存的地址)赋给引用变量
    引用类型包括:接口,数组,Object类型,类,委托,字符串,Null类型

    总结

    1.值类型存储在内存的栈中,引用类型存储在内存的堆中
    2.值类型存取速度快,引用类型存取速度慢
    3.值类型表示实际的数据,引用类型表示指向内存堆中的指针或者引用
    4.值类型继承自System.ValueType,引用类型继承自System.Object
    5.栈的内存分配自动释放;而堆在C#中需要GC释放

    相关文章

      网友评论

          本文标题:C# 值类型和引用类型的区别

          本文链接:https://www.haomeiwen.com/subject/xotduxtx.html