zoukankan      html  css  js  c++  java
  • C#中的值传递和引用传递是什么?

    C#值类型数据直接在他自身分配到的内存中存储数据,而C#引用类型只是包含指向存储数据位置的指针。
    基础数据类型(string类型除外):包括整型、浮点型、十进制型、布尔型。

    整型包括:sbyte、byte、char、short、ushort、int、uint、long、ulong 这九种类型;浮点型就包括 float 和 double 两种类型;十进制型就decimal ;布尔型就是 bool 型了。结构类型:就是 struct 型。枚举类型:就是 enum 型。引用类型有五种:class、interface、delegate、object、string

    引用类型作为参数时:
    1、在修改变量本身时,结果类似于值传递,即不会改变传递前的变量的值
    2、在修改变量的属性或字段时,才是引用传递,会影响到传递前的变量的值
    3、参数使用了ref后,才是真正的引用传递,不管修改变量本身还是修改变量的属性或字段,都会影响到传递前的变量的值

    值传递:传的是对象的值拷贝。(即函数内参数对象是调用时传递的对象的栈中对象的拷贝。)
    引用传递:传的是栈中对象的地址。(即函数内参数对象与调用时传递的对象完全是同一栈中对象。)

    在Java中:
    1. 基本类型和基本类型变量被当作参数传递给方法时,是值传递。在方法实体中,无法给原变量重新赋值,也无法改变它的值。
       2. 对象和引用型变量被当作参数传递给方法时,是引用传递。在方法实体中,无法给原变量重新赋值,但是可以改变它所指向对象的属性。

    和c#中的一样,只不过Java中没有ref, out等关键字

  • 相关阅读:
    JavaScript--数组的声明与创建
    JavaScript--Object对象的两种表示方法
    上下文模式
    Ajax详解
    JS面向对象之原型链
    JS面向对象特性和值类型与复合类型
    JS面向对象使用面向对象进行开发
    JS中的递归
    前端协作流程
    JavaScript中内存使用规则--堆和栈
  • 原文地址:https://www.cnblogs.com/zcy_soft/p/1845809.html
Copyright © 2011-2022 走看看