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

ref和out的区别在c#中?

发布网友 发布时间:2022-04-23 07:12

我来回答

2个回答

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

还是以例子来说明吧;
1. ref:
int i =0;
有函数fun(ref i)和fun(i)
它们的函数体都是{ i = 3;},那么在执行以下两段代码后:
(1)int i = 0; fun(i); System.Console.WriteLine(i.ToString());
(2)int i = 0; fun(ref i); System.Console.WriteLine(i.ToString());
(1)的输出是1,(2)的输出是3,

2. out:
int i; //注意,这里只是声明了变量i,并没有对其初始化
有函数fun(ref i)、fun(out i)和fun(i)
它们的函数体都是{ i = 3;},那么在执行以下三段代码后:
(1)int i = 0; fun(i); System.Console.WriteLine(i.ToString());
(2)int i = 0; fun(ref i); System.Console.WriteLine(i.ToString());
(3)int i = 0; fun(out i); System.Console.WriteLine(i.ToString());
(1)和(2)在编译的时候都会报错:错误 CS0165: 使用了未赋值的局部变量“i”
而(3)能正常编译,而且输出3

最后总结一下:
Ref和Out这两个关键字都能够提供相似的功效,其作用也很像C中的指针变量。稍有不同之处是:
使用Ref型参数时,传入的参数必须先被初始化。而Out则不需要,对Out而言,就必须在方法中对其完成初始化。
使用Ref和Out时都必须注意,在方法的参数和执行方法时,都要加Ref或Out关键字。以满足匹配。
Out更适合用在需要Return多个返回值的地方,而Ref则用在需要被调用的方法修改调用者的引用的时候。

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

最简单的区别就是,在调用ref的函数时,需要对其赋值,对out就没有这样得*了。out参数可以没有赋值的就可以正常的使用的。
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
宝宝被蜱虫叮咬后怎么办? 宝宝被蜱虫咬后该怎么办? 宝宝被蜱虫咬了,要怎么办啊? 宝宝被蜱虫咬了该怎么办? 携程旅行飞机票怎么退 携程旅行退机票手续费介绍 苹果七用ios10.0.01为什么打字 翻照片都炒鸡卡?刚刚买了几天 而且是1... 苹果7怎么老是感觉一顿一顿的 有没有人把苹果手机系统换成ios10之后,老死 QQ会员怎样成为VIP2 ui设计专业的都有哪些课程? ref和out的区别? UI视觉设计师要学习哪些课程呢? UI设计专业的课程有哪些? 概括一下ref和out的各自特点,区别。 ui设计专业学哪些课程? UI设计有哪些课程内容? ui设计主要学习什么课程? C语言中out和ref的区别是什么? ui设计有哪些课程? UI设计需要学哪些课程? 穿和戴有什么区别? 穿组词,用穿字怎么组词 谁知道波仔这傻罐头的塑料盖怎么打开呀! 娃哈哈八宝粥的易拉罐怎么打开?有什么技巧,每次拉直接把那个拉掉了... 你认为红牛易拉罐难开吗? 易拉罐的扣子弄断了,而盖子还是好好的。请问盖子该如何打开? 请问 王老吉 易拉罐装的 盖子怎么打开? 如何打开易拉罐的盖子 密封罐头怎么开? UI设计需要学习哪些内容? UI设计都要学什么课程呢? C# ref参数和out参数是什么? Ui设计专业有什么课程? UI视觉设计师要学习哪些课程? 在C#中ref和out具体怎么使用?在什么情况下使用? ui设计培训课程内容包含什么啊? UI设计总体要学什么? C#中 params out 和 ref之间都有什么用哦? 之间的区别如何? C# 中ref与out关键字应怎样用,具体是什么作用 转基因大豆能发芽吗 - 信息提示 微信公众号怎么认证留言号?微信公众号微博认证企业微信? 。转基因的黄豆能发芽吗? 企业的微博、微信营销怎么做?有没适合的方案或者企业可以推荐一下。 转基因大豆不能发芽吗 避雷针长什么样子 转基因大豆能发芽吗? 避雷针长度如何确定? 转基因黄豆结下的黄豆,是不是不发芽?