前一段时间做项目是,一YY说如果一个方法的参数是引用类型,那么在这个方法里面所做的所有的修改再方法调用后应该有体现。事实是这样的吗?
先看code 和运行结果:
运行结果
方法SetPersonInfo和SetPersonInfo2虽然都是传递PersonInfo的实例 p,但是SetPersonInfo2是修改实例p的属性Name,SetPersonInfo是修改PersonInfo的实例 p的指向地址。这里的实例p是一个地址,只是这个地址指向一个实例A,SetPersonInfo2是在修改这个实例A,所以后面的输出的name应该是修改后的值,但是方法PersonInfo是重新创建一个实例B,并把p的地址指向B。这里的方法调用都是值传递,值传递的意思 就是在进入方法时把值拷贝一份。