刘铁猛C#学习笔记P 018传值 输出 引用 数组 具名 可选参数,扩展方法

1、值参数

      声明的时候,不带任何修饰符的参数,这种参数的本质就是作用域为当前这个方法的一个局部变量,而且呢,它的初始值就是你在调用这个方法的时候,赋给他的实参的值。

     因为值参数相当新声明的局部变量,可以理解为,他是传进来实参的一个副本,所以说,当你对值参数在方法体内进行赋值的时候,他不会影响到传进来的实参也就是传进来的变量的值

     调用的时候,你的参数是传进来的变量的一个副本,无论你怎么去操作这个参数,方法体外面的这个变量,它的值是不会改变的。

     这里就是值类型传值参数的使用方法

2、引用参数

       引用类型它的变量和实例是分开的,而引用类型的变量会引用着引用类型的实例,本质上引用类型的变量,它存储的值是引用类型的实例在堆内存当中的地址。简而言之,引用类型的变量,存储的是一个地址。

        当引用类型的变量以传值的形式传入方法的时候会发生什么,在这儿呢,我们有一个引用类型的变量,它引用了一个实例,当他传进方法之后呢,会产生一个副本,这个副本它也存储了一个值,前面我们说过了,引用类型变量,他的值就是一个地址,现在呢,我们这个副本它存储的值呢显然也是一个地址,那这时候,我们方法的参数它所存储的地址和我们方法外部的变量它所存储的地址实际上是同一个地址,所以说,我们方法内部的参数和方法外部的变量指向的实际上是同一个对象。

       如果你在方法的内部为参数赋了新值,我们都知道,一般情况下,为引用变量赋值的时候,赋值号的右边都是new操作符的表达式,new操作符他的作用就是根据数据类型创建对象,并且调用对象的实例构造器,然后呢,再把实例在堆内存上的地址通过赋值符号交给我们的引用变量,那前面我们已经说过了,值参数,是方法之外变量的一个副本,你对这个副本的操作,不会影响到方法外部的变量,那这时候,你为参数赋了一个新对象的地址,也就是把一个新对象交给这个参数去引用,那么不会影响到方法外部的变量,也就是说,我们方法外部的这个变量仍然引用着先前那个对象。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值