ref和out的区别在c#中?
答案:2 悬赏:50 手机版
解决时间 2021-03-09 05:41
- 提问者网友:星軌
- 2021-03-08 07:17
ref和out的区别在c#中?
最佳答案
- 五星知识达人网友:撞了怀
- 2021-03-08 08:54
还是以例子来说明吧;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则用在需要被调用的方法修改调用者的引用的时候.
全部回答
- 1楼网友:老鼠爱大米
- 2021-03-08 10:09
你的回答很对
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯