.NET中数据集的强类型化
我们知道,每一种程序设计语言都提供一定的类型检查,类型检查可以在编译时进行,也可以在运行时进行,分别称做静态类型检查和动态类型检查。由于静态类型的检查是在编译时进行,实现比较容易,能提高程序的运行效率,而动态检查正好相反,它要在程序运行时为每个数据对象保留一个数据类型的标记,仅当变量和数据类型正确时才执行相应的操作,否则报错,所以实现不容易,效率也较低,然而,它比较灵活。所以如何编译程序对语言的实现效率有很大的影响,因此引出了强类型的概念,比较全面的定义是: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
.NET中数据集的强类型化的更多相关文章
- 022. ASP.NET为DataSet中数据集添加关系及动态创建主子表和添加主子表关系
protected void Page_Load(object sender, EventArgs e) { string connectionString = "server=.;data ...
- 2d-x中Lua类型强转问题
在Lua中,使用CCDictionary进行保存CCSprite对象,但是,在CCDictionary取出来的时候,此时是一个CCObject对象,无法调用子类精灵的一些方法.那只能进行强转的. 那么 ...
- 机器学习实战基础(十九):sklearn中数据集
sklearn提供的自带的数据集 sklearn 的数据集有好多个种 自带的小数据集(packaged dataset):sklearn.datasets.load_<name> 可在 ...
- 大闸蟹的 O O 第三单元日子——中测与强测的惨烈修罗场
第三单元是大闸蟹体验及其差的一单元,鬼知道从一开始的自信慢慢到最后的自暴自弃我都经历了什么,我已经感觉到分数与gpa与头发都在渐渐和我说再见了 JML基础梳理及工具链 JML(Java Modelin ...
- RDLC中添加参数,用来显示报表中数据集之外的信息。
我添加了两个参数,首先后台: ReportParameter rp = ,,).ToString()); ReportParameter rp1 = new ReportParameter(" ...
- Filter中request对象强转问题
以下为过滤器doFIlter方法的源代码: public void doFilter(ServletRequest request, ServletResponse response, FilterC ...
- 解读经典-《C#高级编程》第七版-Chapter1-.Net体系结构-Page6-13
01 中间语言(IL) .Net中间语言(IL)的特性,很大程度上来自于要支持多语言互操作性.要支持多语言互操作性,是因为微软想搞一个大事情,将它的老产品线VB和VC++,VJ++都装入.Net架构中 ...
- C#中使用设置(Settings.settings) Properties.Settings.Default
应用程序及用户设置 在设计时创建新设置的步骤 在“Solution Explorer”(解决方案资源管理器)中,展开项目的“Properties”(属性)节点. 在“Solution Explorer ...
- C#中使用设置(Settings.settings) Properties.Settings.Default .(配置文件相当重要)
C#中使用设置(Settings.settings) Properties.Settings.Default . 2016年08月04日 15:02:43 zxd9790902 阅读数:10664更多 ...
随机推荐
- java完整的代码执行过程 堆栈+方法区
07\15-面向对象(static关键字-内存图解)
- ie8中支持 password 的 placeholder
之前写过一篇 ie8中使用placeholder 的博客,但是,该文中的 placeholder 在 type="password" 时会出现问题,不能显示文字而是密码类型的点,所 ...
- 在线生成ICO图标、站标
网上一搜有很多,找了两个比较好用的,分别是http://ico.storyren.com/和http://www.ico.la/,前面的那个好像更好点.上传png.jpg.或gif格式的图片,按自己需 ...
- 6.struts登陆页面的演示
1.创建一个web project "Struts_1" 添加struts的jar包 --在项目文件右键->myeclipse->add struts... ...
- C++实现设计模式之 — 简单工厂模式
作者:jostree 转载请注明出处 http://www.cnblogs.com/jostree/p/4251756.html 所谓简单工厂模式,是一种实例化对象的方式,只要输入需要实例化对象的名字 ...
- JS获取图片实际宽高及根据图片大小进行自适应
JS获取图片实际宽高,以及根据图片大小进行自适应 <img src="http://xxx.jpg" id="imgs" onload="ad ...
- Linux下如何卸载HP_LoadGenerator
很简单的一句命令就可以完全卸载! rpm -e LoadGenerator
- 虚拟机开机提示:This virtual machine appears to be in use
[原因]:由于电脑非正常关机导致,重新启动虚拟机就会出现This virtual machine appears to be in use的提示.[解决方法]:到虚拟机的安装目录下删除所有.lck的目 ...
- MySQL Online DDL 工具之pt-online-schema-change
MySQL DDL:DDL是一个令所有MySQL dDBA 诟病的一个功能,因为在MySQL中在对表进行dDDL时,会锁表,当表比较小比如小于1W行时,对前端影响较小,当时遇到千万级别的表,就会影响前 ...
- 关于使用视图进行分页时出现当前记录集不支持书签的错误解决方法及原因(asp)
一般在使用视图进行查询时,视图中意般都关联了两个或者更多个表,一般在这种情况下才会使用视图,但是但我在使用视图来查询数据时没有问题,但是一旦在分页中使用到视图进行查询就会出现错误提示如下: ADODB ...