记C#中ref、out、in的区别与使用

一直对ref、out、in这三种参数没有理解透彻,会面看到就会犯晕乎,所以这次写博将其记录下来,以防遗忘。PS:只是初略理解

首先度娘一波,得到如下结论:

  • ref 修饰符,指定参数由引用传递,可以由调用方法读取或写入。
  • out 修饰符,指定参数由引用传递,必须由调用方法写入。
  • in 修饰符,指定参数由引用传递,可以由调用方法读取,但不可以写入。

WTF??

遂码之,首先是in:

可以看到,不能对in参数赋值,可见只能读,不能写,了解。

再来out:

 

 可以看到,out参数不能读,只能写,就算在main中初始化,也是当做未赋值来看待,了解。

最后再来ref:

 

 ref没有任何报错,可见是可读可写的,了解,还有就是ref参数必须初始化,不然会报错,in也是。

还有一点,ref、out、in参数不能当做重载的依据,如下:

 

 

 当然,out、ref还被用来返回多个内容,我们的方法一般只能return一个数据,当想要一个方法返回多个数据的时候,用上out或ref就可以啦

 

做个总结:

ref、out、in都是将参数按引用来传递,我们普通做法什么都不加是用的值传递,这在内存分配上是有差异的。

ref:可读可写(可进可出)

out:只能写不能读(只出不进)

in:只能读不能写(只进不出)

 

哈哈,以上就是我的初步理解,有错误之处还烦请支出,3Q~

 

posted @ 2020-12-17 16:16  漏沟子一脚  阅读(792)  评论(0)    收藏  举报