|
发表于 2012-12-15 22:58:59
|
显示全部楼层
语言过于俏皮,而且一点也不幽默,表示看不惯。。。
说说我的观点:
1.6.1 bool变量与零值进行比较
题目问哪一组或哪些组正确呢?
然而他后面开始讨论写法好不好。。。这人怎么这么没逻辑性。。。
再说,要我说,if(bTestFlag == TRUE)写法也很好,表意明确,至于他说的,bTestFlag可能是除去1,0之外的值,还举了VB的例子(你说C语言讲什么VB,要不要带上java啊?),我觉得,既然你定义了一个bool型,则就是非true即false的,你给他赋别的值这种行为本身就是错的。要是个你不能肯定他非true即false的,别定义为bool型,别带上b前缀。
我觉得程序员们应该都按约定来做事,而不应是绞尽脑汁地想所有违约的可能性。
另外现在在用C#做客户端,慢慢地有了些体会:假设写一个函数,传一个参数,根据参数决定是否执行某操作,或二者选其一的操作。以前我无疑是用bool型变量传参,现在我更倾向于写一个enum,两个枚举值,明确含义。这样代码摆在那里,不用废话解释true是什么false是什么,一目了然。
举例,看到一句代码,用了DebugOut函数输出测试文本,DebugOut("text", true); DebugOut("text", false); 你能一下就知道true多做了什么,false少做了什么么?
如果用enum做呢,就类似这样的:DebugOut("text", DebugOutWriteLogFile.Write); DebugOut("text", DebugOutWriteLogFile.NotWrite);
当然这种便利离不开VS编辑器的强大,如果没有强大的提示功能,可能这种写法就不会带来方便。
还有说到register变量,我感觉现在意义真不大了,编译器都会优化,基本用不着操心,我觉得用这个关键字,也就两种原因:1,装b;2,告诉其他程序员,该变量地位不一般。
|
|