ref与out的区别

首先了解一下C#中函数的参数是怎么传递的,参数可以通过引用或值传递给函数,通过引用传递给函数,得到的就是参数本身,所以在函数内对参数作的任何操作,在退出函数后任然有效;通过值传递给函数,函数内得到的只是参数的一个副本,在函数内对参数作的任何操作在退出函数后都不能保留。

在默认情况下,参数都是通过值传递的。但对于引用类型,传递的是参数的地址,而不是参数本身,所以对于底层的修改,对参数任然有效。不过可以通过ref关键字,将值类型的参数当作引用传给函数,那样在函数内对参数作的所有修改都会保留下来。

参数在传给函数时,必须被初始化,这样将使得参数的值变得无意义,这是在参数前加一个out关键字,尽管参数没有初始化,也是可以作为引用传递个函数的。但在方法结束前必须对out参数赋值。

test
原文地址:https://www.cnblogs.com/session0827/p/5447873.html