当前位置: 代码迷 >> .NET Framework >> 为什么很多人喜欢在C#中用out和ref?解决方法
  详细解决方案

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

热度:104   发布时间:2016-05-01 23:43:37.0
为什么很多人喜欢在C#中用out和ref?
特别是在输出错误信息时,一般来说,不管是否是可预见的错误,毕竟都比正常流程要少的多,弄个ref,out,搞得每次都要传递这个参数,大多数是空的,为何不用抛出异常,我很费解?谁能解释下?
------解决方案--------------------
这是个人习惯,尤其是一起使用ado.net比较多的人

ado.net采用int做返回参数,-1自然表示有误,但错误是啥并没有明说

自然如果喜欢采用这种api规定做设计的人,在处理这套东西的时候,他就比较郁闷,所以他就只好自己在临时弄一个ref

ps:这一般都是临时加上去的,一般ref参数都在末尾是吧,why?因为大多数情况是开始就没考虑到,后来需要了临时加上了。如果你开始想到了,又何必如此呢??

比如ado还有lasterror可以查。如果开始就想到了你也一样可以,事先就在对象里放lasterror属性
------解决方案--------------------
得看看代码的都是什么人。如果像微软那样设计给所有人用的类库,那么就不能假定程序员有对指针、out、ref这样的按引用传递的理解,所以要避免。如果目标是中高级程序员,那么就不需要有这方面的顾虑。
------解决方案--------------------
引用:
传统的c环境最差劲的,就是其调试环境。于是就产生了这类东西,用返回值来表示是否异常。


不管用任何C语言的书入门,C都是这么用的,因为没有别的选择,相反,C程序员会觉得C异常机制极其丑陋,习惯了C的程序员对于任何绕圈子的行为都看不惯,包括C++对一些类型安全上的限制(C程序员会说,unsigned char和char内存上没有任何区别,C++却不能隐式转换char *和unsigned char*,每次都强转根本是脱裤子放屁)

C++的异常机制也是个半残,因为C++的标准库太贫乏了,其中有一半还是继承C的,根本不抛异常

所以不要随便喷别的语言,各种语言都有自己的价值观,在脚本语言看来,C#一样低级,一些脚本语言用户鄙视一切需要编译,或者有“类型”的语言
  相关解决方案