zoukankan      html  css  js  c++  java
  • 值类型、引用类型

    值类型

      值类型(包括所有的数值类型、枚举和结构)都分配在栈上。所以值类型一旦离开其定义的作用域,立即就会从内存中删除

      当一个值类型赋值给另一个值类型的时候,默认情况下完成的是一个成员到另一个成员的复制。

    引用类型

      引用类型分配在托管堆上。其对象一直保留在内存中,直到.NET垃圾回收器将它们销毁。默认情况下,一个引用类型的赋值将new出一个对该堆上同一个对象的新引用(new关键字返回的是一个指向堆上对象的引用,而不是真正的对象本身。这个引用变量保存在栈内,以供程序以后使用)。

    包含引用类型的值类型

      该值类型的复制过程中,值类型依旧完成一个成员到另一成员的复制,而引用类型依旧是new出一个对堆上同一对象的引用的。

      默认情况下,当值类型包含其他引用类型时,赋值将生成一个引用的副本。这样就有两个独立的结构,每一个都包含指向内存中同一个对象的引用(浅复制)。

    按值传递引用类型

      其实该方式也是一种成员到另一成员的复制。只不过其复制的不是成员的值(状态),而是指向调用对象的引用。相当于复制了一个新的实参实例。该实例与实参一样指向堆上同一对象。

    按引用传递引用类型

      该方式传递的是引用类型的本身。通过使用ref关键字,传入的是参数对象本身。

      如果按引用传递引用类型,被调用者可能改变对象的状态数据的值和所引用的对象  

  • 相关阅读:
    innerHTML,outerHTML,innerText,outerText
    vue生命周期
    vue属性监听
    vue计算属性(通过计算得来的属性)
    express脚手架的安装,以及ejs的语法
    mongoose的基本操作方法
    vue的基本指令
    MongoDB
    五分钟让你拥有自己的聊天室
    带你了解世界最先进的手势识别技术 -- 微软,凌感,Leap...
  • 原文地址:https://www.cnblogs.com/76674718/p/1594171.html
Copyright © 2011-2022 走看看