C#入门学习笔记 #7(传值/引用/输出/数组/具名/可选参数、扩展方法(this参数))
欢迎进入这篇文章,文章内容为学习C#过程中做的笔记,可能有些内容的逻辑衔接不是很连贯,但还是决定分享出来,由衷的希望可以帮助到你。
笔记内容会持续更新~~
本篇介绍各种参数,参数本质上属于方法的一部分,所以本篇算是对方法更深度的学习。本章难度较大...
传值参数
值类型传值参数
声明时不带修饰符的形参是值参数。一个值形参对应于一个局部变量,只是它的初始值来自该方法调用所提供的相应实参。先介绍值类型的传值参数。
方法调用后的参数相当于是变量传进来的一个副本,参数的值,就是变量的初始值,两者互不干扰。如果为方法内的参数进行重新赋值的话,方法体外的原本的变量是不会改变的,下面用具体的例子进行解释。
可以看到在执行AddOne方法后,值传进来的是一个副本值,经过AddOne方法后变成了101,方法体外变量y本身的值没有受到任何影响,还是100。
引用类型传值参数
然后介绍引用类型传值参数。已经介绍过一个概念了,引用类型的变量和实例是分开的,本质上引用类型的变量存储的值是引用类型实例在堆内存中的地址,因此当引用类型变量以传值的形式传入方法的时候,如下图所示,引用类型变量引用了一个实例,当传入方法后,会创建一个副本,由于本质上数据是地址,所以创建的副本也会引用到同一个实例。
当我们对副本进行操作后,会创建一个新的对象,不会对原本的实例对象产生影响,下面用具体的例子进行解释。