从体制上解决if(a=b)的BUG——再谈C#的优点
发表时间:2008-04-02 23:12:00 关键词:C#,Visual,编程,学习,心得,体会
(点击:) 把这篇文章告诉我的QQ或MSN朋友
中断了好久的C#学习又恢复了,我始终认为,工作忙碌不应该成为学习被打断的理由,可是尽管如此,我学C#的进程还是停滞了一段时间。值得欣慰的是,这段时间我还用来学了点别的东西。
曾经有几个编程界的朋友一起聊天,有人问起“你们最容易发生的毛病是什么?”,我脱口而出“把‘if (a == b)’写成‘if (a = b)’”。是的,这样一个小小的错误经常令我吃大亏。谁让我是一个既写BASIC又写C++的人呢?
其实,BASIC和C++一起写的人不仅仅会在写C++的时候犯毛病,也可能在BASIC中用错。只是机率稍低一点。也就是说,这两种写法的冲突最终造成的结果是两边都受害。
然而C#不一样,它从体制上解决了这个问题。简单说,就是C#的“if”语句只支持bool型的常量、变量或表达式。这意味着在C#中写下“if (a = b)”将直接报错。
应该说,这一改善降低了C#的灵活性,因为C++可以一边赋值一边判断,而C#将失去这一灵活的用法(实在要用当然也有办法:if ((a = b) != 0))。但是,如果一把非常锋利的刀它在使用的时候很容易伤着主人,那么刀本身也应该有所改善。
本站特约顾问律师常州东晟律师事务所朱立律师(电话13915029670,QQ646146109)提醒您:
本站文章皆为作者原创,其它媒体(包括但不限于报刊、杂志、网站、电视、电台)未经作者书面许可严禁转载(或部分摘录)!
本站文章皆为作者原创,其它媒体(包括但不限于报刊、杂志、网站、电视、电台)未经作者书面许可严禁转载(或部分摘录)!
