C#:函数传参 传值 vs 传引用

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/sss_369/article/details/84980534

概念

 值传递 当方法传递的参数是值类型时,变量的栈数据会完整地复制到目标参数中,即实参和形参中的数据相同但存放在内存中的位置不同。所以,在目标方法中对形参所做的更改不会对调用者的初始变量产生任何影响。

  引用传递 当方法传递的参数是引用类型时,只是将变量的引用复制到目标参数中,实参和形参的引用指向内存中的同一位置。所以,在目标方法中对形参所做的更改会影响调用者的初始变量。

C#中的特殊参数

(1)引用参数---ref

结构、整数等类型做参数时默认是传值的;

类、数组等类型做参数时默认是传引用的;

在传值的类型前加上关键字ref,并在调用时在实参上也加上关键字ref,即可改为传引用。    

(2)输出参数---out

     C# 除了传值、传引用之外,还可以将数据从一个函数内部单向传出。

    需要使用关键字out来修饰参数类型;

【注】:refout都是传引用。区别在于,out不接受调用者传来参数的数据值,而是把该参数当做未赋值的参数。


参考文章

1. https://blog.csdn.net/susan19890313/article/details/6841541

猜你喜欢

转载自blog.csdn.net/sss_369/article/details/84980534