值传递和引用传递是针对方法调用时,参数的传递情况
值传递:是将实参的值复制一份给形参,形参的值相当于实参的一个副本,形参(副本)的值被改变,不会影响原来实参的值。基础类型属于值传递。
可以将值传递理解成文件的负复印,不管如何修改复印件,都不会对原件产生影响
引用传递:本质上,也是将实参的值复制一份给形参,只不过这个值比较特殊,是引用类型的对象的地址。通过形参对对象进行操作,会改变原来对象的值。
可以将引用传递理解成网页的链接,当发生引用时只是将链接给了别人,你可以通过链接修改网页,别人也可以。
下面是值传递具体代码例子:
其中第一个输出是1好理解不做赘述,第二个输出为什么不是10呢?因为在执行change方法的时候虽然是a=10但是没有返回所以导致a在外面没变,即a=1。
下面是引用传递的例子:
这里第一个输出null不做赘述,第二个输出名字是因为将定义的person对象传递给了change方法,而方法中的person.name传递给了person类中的string name,所以第二个输出的是名字。