C# —— 方法参数ref和out的作用

cs 复制代码
 public static void Test(ref int a)
 {
     a += 10;
 }
 public static void GetValue(out int x)
 {
     x = 10;

 }

ref 和 out 分别使用在方法的参数前面

ref 关键字可以使参数变成引用类型的参数,

cs 复制代码
int a = 10;
Test(ref a);
Console.WriteLine(a);

如果方法参数不加ref; 结果10,传递的数据是值类型,在方法中进行修改,实参不会跟着变化

// 如果方法参数加上ref ,结果是20,传递的数据是引用类型,在方法进行修改形参,实参会跟着变化

out 关键词,return 关键字用于从函数中返回一个值,只能返回一个值,可以使用out来从函数中返回两个值

ut 输出参数把方法中的一个数据赋值给自己,于引用参数相似

// out 关键字只强调能够返回什么值给外边的变量 不关心传入的是什么样的值,3 在方法内部需要先初始化才能使用

cs 复制代码
int a1 = 0;
GetValue(out a1);// 调用方法 相当于把方法内的x值赋值给a1 下面打印a1的就是10
Console.WriteLine(a1);
相关推荐
名扬91111 分钟前
webrtc编译问题-ubuntu
开发语言·python
白云千载尽29 分钟前
Python 初学者 / 中级开发者常踩坑的 10 个坑 —— 要用好几年才能彻底搞清楚的
开发语言·python
Evand J42 分钟前
【MATLAB雷达滤波代码】二维,单雷达跟踪与滤波。EKF融合雷达的距离、角度+目标IMU数据。附代码下载链接
开发语言·matlab·雷达·ekf·雷达跟踪·角度观测
weixin_462446231 小时前
【原创实现】Python 实现 PDF 批量压缩工具(支持逐个确认 / 批量处理 / 多级压缩)
开发语言·python·pdf
沐知全栈开发1 小时前
Bootstrap 轮播教程与最佳实践
开发语言
FAREWELL000751 小时前
Lua学习记录(4) --- Lua中多文件调用 以及 关于位运算符的零碎知识点
开发语言·学习·lua
yaoxin5211231 小时前
256. Java 集合 - 掌握 Java 的 merge () 方法:提升 Map 操作效率与灵活性的关键
java·开发语言
AuroraWanderll1 小时前
深入理解C++多态(三):多态的原理——虚函数表机制(上)
c语言·开发语言·数据结构·c++·算法·stl
lly2024061 小时前
Python Number(数字)
开发语言
阿沁QWQ1 小时前
STL库vector模拟实现
开发语言·c++