探讨DotNET中数据集的强类型化(C#)

我们知道,每一种程序设计语言都提供一定的类型检查,类型检查可以在编译时进行,也可以在运行时进行,分别称做静态类型检查和动态类型检查。由于静态类型的检查是在编译时进行,实现比较容易,能提高程序的运行效率,而动态检查正好相反,它要在程序运行时为每个数据对象保留一个数据类型的标记,仅当变量和数据类型正确时才执行相应的操作,否则报错,所以实现不容易,效率也较低,然而,它比较灵活。所以如何编译程序对语言的实现效率有很大的影响,因此引出了强类型的概念,比较全面的定义是:a.每个变量都能在编译时确定唯一的类型b.当变量允许存储1个以上类型的值时,也可以对值进行检查c.对于某种运算连接在一起的两个变量的所有实例都要进行静态类型检查,看它们是否一致.根据这个标准我们知道c#是具有强类型特性的语言。当然,在某些时候也支持弱类型的后期绑定访问,比如DataSet,我们直接定义的DataSet就是这种类型的,我们也可以创建强类型的DataSet,在NET,类型化的 DataSet 是从 DataSet 派生的类,在VS.net的IDE,有很多方法可以实现类型化的 DataSet,最常见的是用适配器生成的DataSet(“生成数据集”,很常用的吧,你知道你做了些什么吗?),我们要探讨的是,类型化的 DataSet到底是什么,它给我们带来了什么好处.希望我下面的讲解能帮您掀她的盖头.J

1. 知其然----看得见的好处:

[1]因为是静态的类型检查,所以程序的效率更高,同时程序的错误将在编译时被发现而不是运行时

[2] 类型化的 DataSet 提供强类型的方法、事件和属性。可以按名称(而不是使用基于集合的方法)访问表和列。提高了代码的可读性。关于这点,因为和我们编程关系密切,所以我们要铺开来谈

添加的东西:

l 以DataSet里包含的DataTable名称为标识的强类型DataTable,比如JobsDataTable,这是一个继承的类,其父类是DataTable,也实现了Ienumerator接口,也就是说我们可以进行简单的迭代

l 以DataSet里包含的DataTable名称为标识的强类型DataRow,比如JobsRow,这也是一个继承类,其父类是DataRow

posted @ 2007-07-10 15:37  海底的鱼  阅读(1920)  评论(0编辑  收藏  举报