C# ref传参与out传参
2023-12-15 16:48:20
在 C# 中,ref 和 out 都是用于传递参数的关键字
1、ref 关键字:
ref 用于将一个变量传递给方法,并允许方法修改该变量的值。
调用方法时,必须先初始化被 ref 修饰的变量,否则会编译错误。
方法内部可以不给 ref 参数重新赋值,但是如果赋值了,必须确保在方法返回前给 ref 参数赋值。
在方法调用之后,原始变量的值可能会被修改。
static void ChangeValue2(ref int value) {
value += 20;
Console.WriteLine("ref内部:" + value);//40
}
int number = 20;
ChangeValue2(ref number);
Console.WriteLine("ref外部:" + number); //40
2、out 关键字:
out 也用于将一个变量传递给方法,允许方法修改该变量的值。
调用方法时,可以不初始化被 out 修饰的变量,因为传递给 out 的变量在方法内部必须被赋值。
在方法内部必须给 out 参数重新赋值,否则编译错误。
在方法调用之前,原始变量的值对于 out 参数没有影响,方法调用之后,out 参数中存储的值会被返回。
static string getName(out string f) {
//可以让你正常获取return的同时多获取一部分。
//其实这个f代表的是外部的name属性,有的时候需要把外部变量放到方法内部赋值
f = "古力娜扎";
return "迪丽热巴";
}
// 调用out方法
// 如果方法上的形参使用了out修饰,那么需要传递一个相同类型的变量
string name = "";
string name2 = getName(out name);
Console.WriteLine(name); //古力娜扎 (这个是name的值)
Console.WriteLine(name2); //迪丽热巴 (这个是函数的返回值)
ref 和 out 关键字在用法上有些相似,都可以将变量传递给方法并允许方法修改变量的值。不同之处在于,ref 在方法调用之前必须初始化,而 out 不需要初始化,并且在方法调用之后,out 参数中存储的值会被返回。
文章来源:https://blog.csdn.net/qq_51810680/article/details/135018000
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!