如果判断过多,也许令程序变得复杂,或许日后还有条件添加时,维护起来可想而知。Insus.NET有看到论坛一个网友帖出问题的代码:
它的问题是Session的判断,判断Session 是否为空,正确方法应该是:
Session["xxx"] != null
现在,我们在这里不讨论问题与原因,讨论的是怎样设计下拉菜单与减少条件的判断。从两段代码来看,网友是在前一页放在下拉菜单,让用户选择,并在文本框中输入一些值,来转向第二页再判断对选择的条件进行查询。
不管第一代码代码,还是第二段代码,If很多,也就是说,条件判断很多。日后有可以还要添加。只要有条件修改,网友就得两个地方同时修改,改了第一代码,第二段代码也必须同时修改。
从第二代码来看,网友是想用户搜索一个表中某一些字段。 些字段名在第一段代码下拉式菜单中,改用了一个通俗的名称来给用户看见与好理解。网友想到了,是不错了,但没有设计好,带来了程序的复杂度。怎样说法?
下拉式菜单DropDownList中两个属性,一个Value,一个Text, Text是内容是显示给用户看到的,而Value是给程序员使用的。因此在设计DropDownList的数据源时,应该是字段名对应通俗名。[author] <---> 作者 ; [bookName] <---> 书名 等等。
这样子,用户在第一页的DropDownList看到的选择,还是作者,书名...等。在程序处理时,选择是,就是真正的字段名。这样做有什么好处吧,可以从面的重构程序中看得出来。
第一段代码,可以重构为下面的样子:
第二代码,就可以重构为:
重构之后,也许你不会有机分再修改这两段代码了。只是对DropDownList的数据源增减而已。