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);
相关推荐
你怎么知道我是队长2 分钟前
C语言---printf函数使用详细说明
c语言·开发语言
liulilittle4 分钟前
俄罗斯访问欧洲国际线路优化
开发语言·网络·信息与通信·ip·通信·俄罗斯·莫斯科
陈小桔6 分钟前
logging模块-python
开发语言·python
消失的旧时光-19437 分钟前
函数指针 + 结构体 = C 语言的“对象模型”?——从 C 到 C++ / Java 的本质统一
linux·c语言·开发语言·c++·c
!停8 分钟前
C语言栈和队列的实现
开发语言·数据结构
hixiong1238 分钟前
C# OpenvinoSharp部署DDDDOCR验证码识别模型
opencv·c#·ocr·openvino
源代码•宸9 分钟前
Golang语法进阶(定时器)
开发语言·经验分享·后端·算法·golang·timer·ticker
期待のcode10 分钟前
TransactionManager
java·开发语言·spring boot
郝学胜-神的一滴11 分钟前
Linux系统编程:深入理解读写锁的原理与应用
linux·服务器·开发语言·c++·程序人生
Larry_Yanan11 分钟前
Qt多进程(十一)Linux下socket通信
linux·开发语言·c++·qt