永发信息网

ref和out的区别在c#中?

答案:2  悬赏:50  手机版
解决时间 2021-03-09 05:41
ref和out的区别在c#中?
最佳答案
还是以例子来说明吧;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则用在需要被调用的方法修改调用者的引用的时候.
全部回答
你的回答很对
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
小刘家乡面馆我想知道这个在什么地方
韩国除了跆拳道还有哪些武术?
歌词里有 像一只扑火的飞蛾是什么歌
美版美孚3.78升的机油怎么样
感叹句里不可数名词前什么时候加what a
电子商务行业对大学生能力素质要求
沙河市教师发展中心这个地址在什么地方,我要
无端地什么
近年来全国各地发展了“农作物--猪--沼气--茶
有木有仙侠小说主角仙气飘飘,帅气冷酷,武功
攻略:选杉木做衣柜好不好
国字脸的女孩该穿什么衣领的衣服,剪什么留海
梦见小偷想偷我钱,没偷成堵在家门口不敢出去
手臂式血压计那个牌子好
信联街/信义路(路口)地址在哪,我要去那里办
推荐资讯
S22/G321(路口)在哪里啊,我有事要去这个地方
我家电话停机四个月都查不到这号码了。为啥还
没有高级声卡怎么改变声调?
湘西style锅底捞(大喜私房火锅)我想知道这个
仅在外面小店换机油大约多少钱
求gl,les小说,两个人都是很女人的那种,不
关于外置光驱盒电源问题
我是1976年上班的2002年被辞退的民办教师,能
古城水上巴士苏州博物馆站这个地址在什么地方
告诉我, 一,加入jyp的条件 二,如何加入jyp
把电脑上的CMOS锂电池拿下来可以去掉开机密码
“涂”的繁体字怎么写?
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?