问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

C#中关键字ref和out的区别

发布网友 发布时间:2022-04-21 19:24

我来回答

2个回答

热心网友 时间:2022-04-07 19:19

1.  ref 关键字使参数按引用传递。其效果是,当控制权传递回调用方法时,在方法中对参数所做的任何更改都将反映在该变量中。若要使用 ref 参数,则方法定义和调用方法都必须显式使用 ref 关键字。

2.  out 关键字会导致参数通过引用来传递。这与 ref 关键字类似,不同之处在于 ref 要求变量必须在传递之前进行初始化。若要使用 out 参数,方法定义和调用方法都必须显式使用 out 关键字。

不同:使用ref时,变量必须在传递之前进行初始化,不一定必须在函数内部初始化。out必须在函数内部初始化。

如:一个方法是使用了ref 的 

public static void TestRef(ref int num1)
{
   num1 = 100;
}

使用这个方法的时候(正确的使用烦死)

static void Main(string[] args)
{
   int num1 = 0;
   TestRef(ref num1);
   Console.WriteLine("num1 = {0}", num1);//值为100
}

错误ref的使用是

static void Main(string[] args)
{
   int num1;//未有初始化,会报错的
   TestRef(ref num1);
   Console.WriteLine("num1 = {0}", num1);
}

热心网友 时间:2022-04-07 20:37

1、两者都是按地址传递的,使用后都将改变原来参数的数值。
2、ref可以把参数的数值传递进函数,但是out是要把参数清空,就是说你无法把一个数值从out传递进去的,out进去后,参数的数值为空,所以你必须初始化一次。
这个就是两个的区别,或者说就像有的网友说的,ref是有进有出,out是只出不进。
3、使用ref型参数时,传入的参数必须先被初始化。out,必须在方法中对其完成初始化。
4、使用ref和out时,在方法的参数和执行方法时,都要加Ref或Out关键字。以满足匹配。
5、out适合用在需要retrun多个返回值的地方,而ref则用在需要被调用的方法修改调用者的引用的时候。
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
人民币贬值对人民有什么影响 长春市办理设立个人律师事务所需要什么材料? 学生签证的延期都需要以下材料: 米3手机套彩绘小米3彩膜 骑马与砍杀光明与黑暗泡菜编队方法 陈染相关作品介绍 万紫千红是指什么生肖,精准已答落实 十二生肖谁是万紫千红 手机里带的网络电视怎么联接到笔记本电脑上看呢? ...手机,电脑连上网了,智能电视能连上看电视吗,怎样能看智能电视_百度... C语言中out和ref的区别是什么? 华硕笔记V505L本如何拆后盖换固态硬盘? 自驾游的话,凤凰当地有比较保险且安全的停车场吗 打算过几天去凤凰古城,怎么去方便安全.看了网上那种 2012凤凰古城旅游安全吗?网上说那边治安不是很好... 凤凰古城现在可以去了吗? 关于凤凰古城旅游,还有安全问题怎样? 大哥,问一下去凤凰古城坐车走山路危险不?我们8月... 现在凤凰古城的安全问题 两个女生近期去凤凰古城玩,安全吗?现在是不是旺... 现在去凤凰古城,需要注意些什么事? 从吉首去凤凰安全吗?? 凤凰古城安不安全,2人自助游5天大概要多少钱? 八月份准备去凤凰古城旅游,听说那边有点乱是不是... 一个人去凤凰古城安全吗 湖南凤凰古城的治安问题 步多多阶段目标完成是什么意思,没走一万步现实超过一万步? 雨季去湖南凤凰古城安全吗 请问自驾游张家界、凤凰古城安全吗? 姐弟关系叫什么 正常人运动前一分钟心跳大约是跳多少下呢?呼吸约... 华硕v505l拆机教程视频 out 与ref区别 运动前1分钟心跳大约是多少 概括一下ref和out的各自特点,区别。 华硕笔记本的后盖怎样打开,好清灰 运动前一分钟心跳约多少下呼吸约多少次 C#中out和ref之间的区别 想给我的笔记本电脑除尘,后盖还是拆不下来,这怎... 男孩运动前一分钟心跳约多少下,呼吸约多少次.跑50... ref和out的区别在c#中 总结 运动前1分钟心跳多少下呼吸多少次 华硕笔记本电脑,自己可以把后盖打开吗? c# ref和out区别仅仅是参数需不需要初始化? 运动前,1分钟心跳约多少下,呼吸约多少次 C#中的out和ref有什么区别 运动前1分钟心跳约多少下 ref和out的区别? 运动前,1分钟心跳多少下,呼吸多少下? ref和out的区别在c#中?