记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~

浙公网安备 33010602011771号