C#之方法参数的按值传递和按引用传递
传递对象是值类型,按值传递后传递进方法的是值的副本,方法外部对象不受影响。
按引用传递传递进方法的是对象的地址,外部对象会受影响。
如果传递对象是引用类型,无论是普通传递还是加上ref或者out,都会更改外部的对象。
如果传递对象是字符串,则类似值类型,要传递引用,必须加ref关键字。
out、ref、params
1)、out参数。
如果你在一个方法中,返回多个相同类型的值的时候,可以考虑返回一个数组。
但是,如果返回多个不同类型的值的时候,返回数组就不行了,那么这个时候,我们可以考虑使用out参数。
out参数就侧重于在一个方法中可以返回多个不同类型的值。
out参数在使用之前必须在方法内部为out参数赋值
out参数无法获取传递进来的变量的值,只能为传递进来的变量赋值,所以在传进来之前即使赋值了也没意义
out参数在方法执行完毕之前必须赋值
2)、ref参数
能够将一个变量带入一个方法中进行改变,改变完成后,再将改变后的值带出方法。值传递改变为引用传递
ref参数要求在方法外必须为其赋值,而方法内可以不赋值。
3)、params可变参数
将实参列表中跟可变参数数组类型一致的元素都当做数组的元素去处理。
params可变参数必须是形参列表中的最后一个参数。
可变参数可以传递参数也可以不传递参数,如果不传递参数,则数组为一个长度为0的数组。不是null。
可变参数可以直接传递一个数组进来
下一篇:Java 语法糖详解
相关文章
- VirtualBox7中安装macOS big sur,在windows10&11上「保姆级教程」
- 统信UOS应用相关问题解决方案:Virtualbox启动USB设备支持的方法
- Windows下安装Ubuntu虚拟机方法(在windows上安装ubuntu)
- 如何在 Windows 11 上安装和使用 VirtualBox:2022详细的分步教程
- 甲骨文虚拟机VirtualBox 7.1.8发布:修复CPU占用100% 问题
- 成功尝试在NetBSD9.0中安装Mate Desktop环境记录
- windows下VirtualBox vagrant的安装配置
- ESP32/8266开发环境超详细安装步骤
- 如何在 Virtualbox 虚拟机中安装 Pop!_OS
- 这可是全网eNSP安装最完整,最详细的图解,没有之一(常见问题)