为什么很多人喜欢在C#中用out和ref?

如一宝宝 2012-07-11 02:57:42
加精
特别是在输出错误信息时,一般来说,不管是否是可预见的错误,毕竟都比正常流程要少的多,弄个ref,out,搞得每次都要传递这个参数,大多数是空的,为何不用抛出异常,我很费解?谁能解释下?
...全文
17436 181 打赏 收藏 转发到动态 举报
写回复
用AI写文章
181 条回复
切换为时间正序
请发表友善的回复…
发表回复
nik2011 2014-04-18
  • 打赏
  • 举报
回复
引用 16 楼 goright12 的回复:
你们说的有点难以看清,那到底要不要用ref和out,就我个人来说,很少会用到,如果多的话,就直接用一个实体类传输参数了
一般不用out 和 ref
敌敌畏耶 2013-06-25
  • 打赏
  • 举报
回复
引用 93 楼 wangzhijun1985 的回复:
事实上,现在的C#,可以不使用这两个关键字了。
什么叫 现在的C#???
AJ校长 2012-12-10
  • 打赏
  • 举报
回复
引用 99 楼 XinYaping 的回复:
如果有人说,他这辈子写程序从来不需要在一个函数里返回多个值,那我也没话说; 如果有人说,需要返回多个值的时候他总是封装成一个类,哪怕就两个值也封成一个类,哪怕这多个返回值之间并没有什么直接联系,哪怕这封装的类其实不伦不类,那我也没话说; 编程语言当中哪些关键字要保留,哪些关键字要废弃,这可是大事情,一般都会有专门的技术委员会来商议这件事,而且委员会的成员各个都得是……
大师的水准,拜读。。。已经隐隐感觉有种天下招式皆能为我所用,无招胜有招的境界了~求大师指导编程入门~
heshunneng 2012-08-12
  • 打赏
  • 举报
回复
out ref不是用来做错误处理,而是参数传递的时候减少拷贝的消耗

这个我同意

争论这个 我觉得就像争论 for(int i=0;i<1;;)和while(true)哪个好一样 喜欢就用 不喜欢可以不用

我也觉得goto很不错的一个语法,为什么很多人觉得他很蛋疼 曾经在项目中使用过,被公司前辈批评,说他们看到有goto的代码 坚决不维护,我就纳闷了,那么个优秀的东西,为什么避而不用。

反汇编本地代码 不是到出都是jmp jp call等跳转么 用好了也不会乱啊
code_li 2012-08-12
  • 打赏
  • 举报
回复
我个人喜好 ref xx
hengren4 2012-08-09
  • 打赏
  • 举报
回复
OUT,REF我用的很多的时候都是在返回多个值的时候。大家都在讨论使用这2个关键字是否合理,但我个人感觉如果不返回多个值的时候我几乎是不用这2个关键字的。就我有限的能力所疑问。函数只能返回一个值这个合理吗?随着现在软件的发展,似乎不应该总把规定定死了。
fcmguanba 2012-08-09
  • 打赏
  • 举报
回复
个人的习惯吧。
fcmguanba 2012-08-09
  • 打赏
  • 举报
回复
个人的习惯吧。
fcmguanba 2012-08-09
  • 打赏
  • 举报
回复
是个人的习惯吧
urboat29 2012-08-09
  • 打赏
  • 举报
回复
显然需要有返回值的时候用的,比如有需要多个对象返回的时候用!
jly_ang 2012-08-08
  • 打赏
  • 举报
回复
存在即合理,到用到的时候,用就可以了,为什么觉得奇怪?
senondou 2012-08-08
  • 打赏
  • 举报
回复
那是属个人爱好吧。。。。。。
跟大家分享下,主机屋 免费建站哦,网速很快,稳定,挺爽的!而且还是免费的空间。
bigbaldy 2012-08-08
  • 打赏
  • 举报
回复
说白了,不用ref和out的就是那些基本不调用native dll的人
微信公众号 2012-08-08
  • 打赏
  • 举报
回复
话说,眼镜哥,很犀利啊……哈哈[Quote=引用 99 楼 的回复:]

如果有人说,他这辈子写程序从来不需要在一个函数里返回多个值,那我也没话说;
如果有人说,需要返回多个值的时候他总是封装成一个类,哪怕就两个值也封成一个类,哪怕这多个返回值之间并没有什么直接联系,哪怕这封装的类其实不伦不类,那我也没话说;

编程语言当中哪些关键字要保留,哪些关键字要废弃,这可是大事情,一般都会有专门的技术委员会来商议这件事,而且委员会的成员各个都得是世界级的专家。某些人仅凭……
[/Quote]
yaofushan 2012-08-05
  • 打赏
  • 举报
回复
呵呵,防止返回值出错
Shenqicti 2012-08-05
  • 打赏
  • 举报
回复
不怎么用的到啊
CodeFriends 2012-08-04
  • 打赏
  • 举报
回复
我都是手 写出来是什么就用什么?从没想过是不是要用ref或者out。或者说从没想过为什么用他们,用起来有什么好处。。。。。缺点是什么?怎么修复我这悲催的习惯呢
Dogfish 2012-08-03
  • 打赏
  • 举报
回复
方便。有时候需要。
JasonHix 2012-08-03
  • 打赏
  • 举报
回复
[Quote=引用 112 楼 的回复:]

引用 111 楼 的回复:

引用 12 楼 的回复:

传统的c环境最差劲的,就是其调试环境。于是就产生了这类东西,用返回值来表示是否异常。


没办法啊,当时的机器太慢了,用异常开销太大,要知道当时cpu的主频甚至只有几十Mhz



这个跟当时的机器的运算速度一点关系都没有,这个属于接口设计好不好。
1. 这个是面向过程的产物,不是面向对象的产物;
2. 这个……
[/Quote] 学习一下
NocturneLLJ 2012-08-03
  • 打赏
  • 举报
回复
在如今高级语言泛滥的年代.
怎么可以忘了中级语言的精华?
ref,out这些都是很直接也很方便处理多返回或者存储过程返回值的东西.
有必要封装成一个新类吗?
有必要再拿一套走了一大堆程序减少阅读性但是要的效果跟ref,out是一样的流程吗?
有了LINQ有了LAMBDA难道就可以说SQL就不用了所有的集合都是累赘吗?
C里面还有UINT和INT...
C#只剩下INT.
性能方面的我想不用多解释了吧
加载更多回复(161)

17,740

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 .NET Framework
社区管理员
  • .NET Framework社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧