我们知道,每一种程序设计语言都提供一定的类型检查,类型检查可以在编译时进行,也可以在运行时进行,分别称做静态类型检查和动态类型检查。由于静态类型的检查是在编译时进行,实现比较容易,能提高程序的运行效率,而动态检查正好相反,它要在程序运行时为每个数据对象保留一个数据类型的标记,仅当变量和数据类型正确时才执行相应的操作,否则报错,所以实现不容易,效率也较低,然而,它比较灵活。所以如何编译程序对语言的实现效率有很大的影响,因此引出了强类型的概念,比较全面的定义是: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中数据集的强类型化的更多相关文章

  1. 022. ASP.NET为DataSet中数据集添加关系及动态创建主子表和添加主子表关系

    protected void Page_Load(object sender, EventArgs e) { string connectionString = "server=.;data ...

  2. 2d-x中Lua类型强转问题

    在Lua中,使用CCDictionary进行保存CCSprite对象,但是,在CCDictionary取出来的时候,此时是一个CCObject对象,无法调用子类精灵的一些方法.那只能进行强转的. 那么 ...

  3. 机器学习实战基础(十九):sklearn中数据集

    sklearn提供的自带的数据集   sklearn 的数据集有好多个种 自带的小数据集(packaged dataset):sklearn.datasets.load_<name> 可在 ...

  4. 大闸蟹的 O O 第三单元日子——中测与强测的惨烈修罗场

    第三单元是大闸蟹体验及其差的一单元,鬼知道从一开始的自信慢慢到最后的自暴自弃我都经历了什么,我已经感觉到分数与gpa与头发都在渐渐和我说再见了 JML基础梳理及工具链 JML(Java Modelin ...

  5. RDLC中添加参数,用来显示报表中数据集之外的信息。

    我添加了两个参数,首先后台: ReportParameter rp = ,,).ToString()); ReportParameter rp1 = new ReportParameter(" ...

  6. Filter中request对象强转问题

    以下为过滤器doFIlter方法的源代码: public void doFilter(ServletRequest request, ServletResponse response, FilterC ...

  7. 解读经典-《C#高级编程》第七版-Chapter1-.Net体系结构-Page6-13

    01 中间语言(IL) .Net中间语言(IL)的特性,很大程度上来自于要支持多语言互操作性.要支持多语言互操作性,是因为微软想搞一个大事情,将它的老产品线VB和VC++,VJ++都装入.Net架构中 ...

  8. C#中使用设置(Settings.settings) Properties.Settings.Default

    应用程序及用户设置 在设计时创建新设置的步骤 在“Solution Explorer”(解决方案资源管理器)中,展开项目的“Properties”(属性)节点. 在“Solution Explorer ...

  9. C#中使用设置(Settings.settings) Properties.Settings.Default .(配置文件相当重要)

    C#中使用设置(Settings.settings) Properties.Settings.Default . 2016年08月04日 15:02:43 zxd9790902 阅读数:10664更多 ...

随机推荐

  1. functional javascript

    (转载请注明出处!) 今早带我的master跟我分享了他最近看<functional javascript>一书的感悟,瞬间觉得写1w行代码都不如看本好书来的好啊! 于是在下午的写的项目中 ...

  2. UILabel常用属性

    [super viewDidLoad]; // 实例化UILabel并指定其边框 UILabel *label = [[UILabel alloc]initWithFrame:CGRectMake(0 ...

  3. AJAX 跨域 :Access-Control-Allow-Origin

    在一个项目上想用NodeJS,在前端的JS(http://localhost/xxx)中ajax访问后端RestAPI(http://localhost:3000/….)时(Chrome)报错: XM ...

  4. Nginx+Keepalived实现高可用站点

    Keepalived是一个基于VRRP协议来实现的服务高可用方案,可以利用其来避免IP单点故障,类似的工具还有heartbeat. corosync.pacemaker.但是它一般不会单独出现,而是与 ...

  5. hadoop数据流转过程分析

    hadoop:数据流转图(基于hadoop 0.18.3):通过一个最简单的例子来说明hadoop中的数据流转. hadoop:数据流转图(基于hadoop 0.18.3): 这里使用一个例子说明ha ...

  6. c++ 进程权限的提升

    //提升权限 void CManageProcessDlg::DebugPrivilege() {  HANDLE hToken = NULL;  //打开当前进程的访问令牌  int hRet = ...

  7. Python解析HTML的开发库pyquery

    PyQuery是一个类似于jQuery的Python库,也可以说是jQuery在Python上的实现,能够以 jQuery 的语法来操作解析 HTML 文档,易用性和解析速度都很好. 例如,一段豆瓣h ...

  8. LeapMotion(1):环境配置、简单测试、理解对象

    关注Leap Motion很长时间了,很早就想入手.可是,一方面,一直忙着其它的比赛,没时间顾及:二是缺钱,钱都垫在比赛上了. 好不容易,11月18日,下定决心买进了,这么长时间,也就是再给贵阳职业学 ...

  9. Mac OS X 10.10.2 Yosemite jdk 环境变量配置

    我的Mac系统版本是OS X 10.10.2 Yosemite,为了用Eclipse做android开发,安装了jdk 1.7, 但是如果想使用IntelliJ IDE做android开发的话,就需要 ...

  10. 系统架构师JD

    #################################################################################################### ...