背景:在三层之中,加完SQLHelper之后,D层往B层传值时,数据类型不匹配。
因为SQLHelper方法调用之后,返回的数据类型是DataTable,而三层之间传递的参数类型都是实体类型Entity。
在不用SQLHelper而直接用SQL方法的时候是用Reader来读取查询结果中字段的值,赋给实体中相应的属性。于是我想DataTable里有没有这样一个方法或者属性能直接读取表中的字段值来赋给实体中相应的属性。查了查没有。(为什么没有,也就是DataTable里都有什么,它是干什么用的)于是就问同学了,怎么搞定?王娜建议,要加泛型。泛型可以把DataTable的数据类型转换成Entity或者,把Boolean类型的数据转换成Entity。举得这两个例子都是我想要的。
于是下面看一看
1、什么是泛型?
泛型的由来,是从存储上来说的。变量、数组、集合、泛型的发展。最开始用内存中一个位置映射一个值,用变量来“使用”这个值。进一步发展,用变量来引用一组值,这就是数组。由数组概念,发展出链表、堆、栈,进行排序、检索等。但这并不能完全表达,由此发展出集合概念,它是更强大的数组,都依赖于Object基类。随之而来的是集合中元素并不一定是一样的,于是都得转为Object,涉及到装箱,使性能下降,特别是元素量巨大时。而且由于我们一般使用同一类型(强类型)更方便操作。由此产生了泛型。更深入请戳这里!
泛型简单地说,就是把里面的元素强制指定为特定的类型,也可以说是模板。
表示可通过索引访问的对象的强类型列表。 提供用于对列表进行搜索、排序和操作的方法。
它的参数:列表中元素的类型。
接下来泛型有什么作用,泛型怎么应用?请听下回分析。