.NET Framework 2.0新增特性总结

  下午闲着无聊,翻了翻很久之前买的书籍,看了一下dotNetFramework2.0后添加的特性,包括以下几点:

  • 代码段。这个功能很早就知道了,Framework已经提供了很多代码段,我们也可以自定义代码段,不过之前一直没有用过,今天实践了一下,还是挺有意思的,这种代码自动生成的思想其实挺有用的。另外发现一点,Framework中提供的代码段中,关于C#和VB的数量明显不一样,不知道为啥C#要少呢?上网查了一下,说MSDN中提供了对C#代码段的扩展,可以下载下来试验一下。
  • 重构。这个重要性就不用再废话了,之前通过IDE进行重构时,一直是在Eclipse中用,感觉非常方便。现在VS2005也加上这个功能了,感受了一下,和Eclipse差不多,一个比较好的地方是通过VS2005进行重构时,可以对同一个解决方案中不同的项目保持同步,这一点非常有用。
  • 调试。VS2005可以支持Debug时对代码进行修改,这个特性已经用得非常频繁了。
  • 可空类型。这个没用过,不太清楚在什么场合下最适用,或者说,在哪种情况下,不使用可空类型会造成非常大的麻烦,还请知道的人告诉我一下。关于可空类型,有以下代码
    Code
    public static void Test()
    {
    int? x = 1;
    int y = 2;
    y
    = (int)x;
    x
    = y;
    x
    = null;
    y
    = x;

    int xx = x ?? 1;
    Console.WriteLine(xx);
    }
    其中,x被定义为可空类型,y被定义为int,那么此时,y是可以被直接赋值给x的,但是x是不可以直接赋值给y的,它需要显示类型转换,所以上面的代码是不会通过编译的。另外,??可以看做是条件操作符的另一种形式。
  • 泛型。Java在1.5中加入了泛型,这样在使用1.5去编译之前的程序时,在集合类型变量的声明中总是会见到非常烦人的Warning,去提示需要去定集合类中元素的确切类型,这一点很让人不爽。dotNet在这方面做得很好,它对于同一种集合数据结构,提供了泛型和非泛型两种选择。
  • 多维数组。这个不算是dotNetFramework2.0中新增的特性,这是我之前一直没有注意到的事情,见以下代码
    Code
    static void ArrayTestM()
    {
    int[,] nArrayHeight = { { 1, 2, 3, 4 }, { 5, 6, 7, 8 }, { 9, 10, 11, 12 } };
    foreach (int n in nArrayHeight)
    {
    Console.WriteLine(
    "{0}", n);
    }
    Console.WriteLine(
    "二维数组输出结束!");
    }
    static void ArrayOfArray()
    {
    int[][] arrayA ={ new int[] { 1 }, new int[] { 1, 2 }, new int[] { 1, 2, 3 }, new int[] { 1, 2, 3, 4 }, new int[] { 1, 2, 3, 4, 5 } };
    foreach (int[] ArrayN in arrayA)
    {
    foreach (int n in ArrayN)
    {
    Console.WriteLine(
    "{0}", n);
    }
    }
    Console.WriteLine(
    "数组的数组输出结束!");
    }
    多维数组分为以上两种实现方式,一种是普通意义上的二维数组,我们使用[,]形式来进行定义,此时,数组中的每个元素还是一个最基本的元素,在遍历时,只需一次循环即可;另一种是数组的数组,我们使用[][]形式进行定义,此时,数组中的每个元素都是一个数组,所以在遍历时,需要两次循环才可以。
  • 强类型。对于property或者数据库Table中的字段来说,在访问方式上,之前比较常用的是采取字符串硬编码的方式进行访问,例如:
    Code
    string lastName = this.dataSet1.Tables["Employees“].Rows[0]["LastName"];
    这样写的方式,我们很难在编译时发现可能的拼写错误,增加了发生错误的概率。通过使用强类型,同样的功能,我么可以这样实现
    Code
    string lastName = this.northwindDataSet.Employees[0].LastName;
    这样,我们就可以使用IDE智能感知的强大功能,提高了效率。

转载于:https://www.cnblogs.com/wing011203/archive/2008/09/06/1285833.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/496697.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

10停止nginx命令 win_Linux下配置Nginx并使用https协议

环境Centos7.6nginx-1.17.0下载官网:http://nginx.org/download/nginx-1.17.0.tar.gz环境确认在安装nginx前首先要确认系统中是否安装gcc、pcre-devel、zlib-devel、openssl-devel检查是否安装过软件包yum list installed | grep xxx安装软件包yum -y install gcc p…

s5pv210开发板、原理图、刷机和数据手册

笔记源自《朱老师物联网大讲堂》 《1.3.ARM裸机第三部分-开发板、原理图和数据手册》 第一部分、章节目录 1.3.1.开发板和光盘资料简介 1.3.2.开发板硬件手册带读 1.3.3.开发板刷系统1 1.3.4.开发板刷系统2 1.3.5.开发板刷系统3 1.3.6.X210核心板、底板原理图导读1 1.3.7.X21…

腾讯AI Lab发布三大核心战略,与自然科研达成战略合作

来源:腾讯AI实验室3月15日,腾讯AI Lab第二届学术论坛在深圳举行,聚焦人工智能在医疗、游戏、多媒体内容、人机交互等四大领域的跨界研究与应用。全球30位顶级AI专家出席,对多项前沿研究成果进行了深入探讨与交流。本次论坛以“共享…

Java并发编程实战~Guarded Suspension模式

Guarded Suspension 模式 比如,项目组团建要外出聚餐,我们提前预订了一个包间,然后兴冲冲地奔过去,到那儿后大堂经理看了一眼包间,发现服务员正在收拾,就会告诉我们:“您预订的包间服务员正在收…

C 和 C++字符串详解

From:http://blog.csdn.net/fenxinzi557/article/details/51457829 From:http://www.cnblogs.com/xFreedom/archive/2011/05/16/2048037.html C之string类型详解:http://citycowboy.blog.sohu.com/50058804.html -------------------------…

Oracle函数大全1

1.ASCII 返回与指定的字符对应的十进制数; SQL> select ascii(’A’) A,ascii(’a’) a,ascii(’0’) zero,ascii(’ ’) space from dual; A A ZERO SPACE --------- --------- --------- --------- 65 97 48 32 2.CHR 给出整数,返…

diy直立双足机器人_Aelos Pro 机器人:让编程变得更有趣

前言拥有一台酷炫的机器人是每个人儿时的梦想,爱搞机最近也有机会拿到一款来自乐聚的新品: Aelos Pro 机器人。相信有了解过机器人的朋友,应该对乐聚有所耳闻,乐聚在人形机器人领域一直都是行业的佼佼者,Aelos 系列机器…

uboot学习前传

笔记源自《朱老师物联网大讲堂》 《2.uboot和系统移植-第1部分-2.1.uboot学习前传》 第一部分、章节目录 2.1.1.为什么要有uboot 2.1.2.为什么是uboot 2.1.3.uboot必须解决哪些问题 2.1.4.uboot的工作方式 2.1.5.uboot的常用命令1 2.1.6.uboot的常用命令2 2.1.7.开发板和主机的…

中国科学家首次解析人脑“中央处理器”,领先美国脑计划

来源:澎湃新闻 作者:贺梨萍“我们可以探索数光年外的宇宙,但对我们两耳之间3磅重的大脑知之甚少。”这一想法推动美国前任总统奥巴马启动了“推进创新神经技术脑研究计划”,也就是所谓的 “脑计划”。中国同一领域内的研究也在加…

物理拓扑和逻辑拓扑——现实和应用的比较

在每一个网络管理者的脑子里几乎都有一张自己所管理的网络拓扑图。在网管系统中,生成拓扑图是网管系统的基本功能之一。目前,在网管系统中生成的的拓扑图分为物理拓扑和逻辑拓扑,他们有什么不同呢? 作为网络的管理者我们知道&…

虚拟机无法接受组播消息_IPTV(组播)骨干网完整解决方案--四川广电网络

一,基于ANYCAST 设计骨干RP热备1,RP选举说明组播网络RP设置分为动态,静态2种。但和很多网络协议不一样,RP的选择默认是动态优先。也就是在路由器上同时存在动态和静态RP的时候会优选动态,除非定义强制静态优选动态才不…

Java并发编程实战~Worker Thread模式

在上一篇文章中,我们介绍了一种最简单的分工模式——Thread-Per-Message 模式,对应到现实世界,其实就是委托代办。这种分工模式如果用 Java Thread 实现,频繁地创建、销毁线程非常影响性能,同时无限制地创建线程还可能…

DES算法

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录前言一、DES是什么?二、go语言实现1.使用CBC模式1.使用ECB模式前言 提示:以下是本篇文章正文内容,下面案例可供参考 一、DES是什…

2018年世界前沿科技趋势展望及2017年态势总结

来源:全球技术地图本文以智能制造、新材料和信息三大领域为例,深入浅出的探讨了2017年以来世界前沿科技的发展脉络,并对2018年可能的走势进行了预测。-智能制造领域-2017年态势总结多国推出新举措,推动先进制造发展美国成立白宫贸…

写给女友的情诗

亲爱抱抱每次看到你很快乐的样子总是让我无比欢畅你让我看到幸福 让我看到阳光彼此的那份甜蜜只有你我才能感觉得到你让我忘掉悠愁 让我忘掉烦恼你就是我最闪亮的星星亲爱的让我紧紧的抱抱每次都是那么地不一样无论如何我还是喜欢这样抱着你直到永远Hei Baby You are my favori…

机器人3·15 | 赛迪「机器人国评中心」揭示机器人产品质量6大痛点!

来源:雷克世界机器人是“制造业皇冠顶端的明珠”,其研发、制造、应用是衡量一个国家科技创新和高端制造业水平的重要标志。当前,我国机器人市场进入高速增长期,“机器换人”浪潮势不可挡,产品应用层见叠出,…

Java并发编程实战~Balking模式

上一篇文章中,我们提到可以用“多线程版本的 if”来理解 Guarded Suspension 模式,不同于单线程中的 if,这个“多线程版本的 if”是需要等待的,而且还很执着,必须要等到条件为真。但很显然这个世界,不是所有…

jq如何在打开新的页面 关闭之前同链接的页面_教你如何“抢”其他域名的权重...

白帽波哥的上一篇文章《这三种域名,永远不会有询盘》里留了两个尾巴,一个是如何将好域名的权重导到一个新域名上,另一个是如何清除域名里的垃圾外链。今天先讲第一个,如何将好的老域名权重导到新域名,也就是业内常说的…

ARM GIC (五)gicv3架构-LPI

在gicv3中,引入了一种新的中断类型。message based interrupts,消息中断。 一、消息中断 外设,不在通过专用中断线,向gic发送中断,而是写gic的寄存器,来发送中断。 这样的一个好处是,可以减少中断线的个数。 为了支持消息中断,gicv3,增加了LPI,来支持消息中断。并且…

HtmlTextWriter学习

HtmlTextWriter与Html32TextWriter 这两个类不存在继承和被继承关系。HtmlTextWriter支持Html4.0标准,而Html32TextWriter支持Html3.2标准,在msdn中一般不建议将Html32TextWriter实例话,它仅为支持低版本的浏览器而设计。 HtmlTextWriter初始…