c#中对象作为方法参数传递引用传递,值传递这本是一个很简单的知识点,但是我们在实际开发过程中还是蛮容易踩到这个
坑,尤其是在维护他人代码。逻辑比较复杂的时候,容易出错,哈哈,警醒一下。
如图所示,对象为引用传递,方法中会改变实际的对象的值。
引用传递相当于是对引用对象地址的传递,期间改变值,在方法出来之后,存在对应地址的值是会发生变化的。值传递,只是传值不会方法结束之后是不会改变值的。
值传递变成引用传递,加上ref就行。string是引用类型,string按值传递的效果与值类型按值传递效果一样,string在这里比较特殊。
引用传递不改变对象的值,其中一个方法是在方法中重新new一个对象,然后赋值,这样的话,就会在方法中重新开辟一个新的地址,来存放这些值,原先传入的参数不改变其地址上存入的值
一句话总结,引用传递是传的是本身,值传递传的是个副本。