1.GC垃圾回收机制
垃圾回收机制(Garbage Collection, 简称GC),作为CLR最大的亮点之一,使得传统的Native语言(c/c++)程序员"彻底"摆脱了一直影响编程质量的内存泄漏(Memory leak)问题,引得大家无数的好奇和关注。.NET框架4支持后台垃圾收集。此功能取代了以前版本中的并行垃圾收集,从而提供更好的系统性能。
2.反射机制
审查元数据并收集关于它的类型信息的能力。元数据(编译以后的最基本数据单元)就是一大堆的表,当编译程序集或者模块时,编译器会创建一个类定义表,一个字段定义表,和一个方法定义表等。
3.泛型编程
.NET 2.0的System.Collections.Generics 命名空间包含了泛型集合定义。 大温岭同城游灵活应用泛型可以充分发挥代码威力,不用重复定义各类方法和无节制的类型重载
4.网络编程
网络编程方面的改进包括以下内容:
针对Windows身份验证的安全改进体现在几个类中,包括System.Net.HttpWebRequest,System.Net.HttpListener,System.Net.Mail.SmtpClient,System.Net.Security.SslStream和 System.Net.Security.NegotiateStream。在Windows 7和Windows Server 2008 R2中运行的应用程序可以使用扩展保护功能。有关该内容的更多的信息,请参阅《使用扩展保护集成Windows身份验证》。
支持使用IPv6和Teredo进行网络地址转换(NAT)遍历。有关该内容的更多的信息,请参阅《使用IPv6和Teredo实现NAT遍历》。
新的网络性能计数器能够提供有关HttpWebRequest对象的信息。有关该内容的更多的信息,请参阅《网络性能计数器》。
在System.Net.HttpWebRequest类中,通过重载AddRange方法支持使用64位头部结构。在System.Net.HttpWebRequest类中定义的新的属性允许一个应用程序设置很多HTTP头部。您可以使用Host属性设置一个HTTP请求中的独立于请求URI的头部值。
提供针对System.Net.Mail.SmtpClient和相关类的安全套接字层(SSL)支持。
提供在System.Net.Mail.MailMessage类中的针对邮件头部的改进支持。
支持在一个加密中使用空密码。您可以使用System.Net.ServicePointManager类和EncryptionPolicy属性来指定加密策略。System.Net.Security.SslStream类的构造函数现在使用一个System.Net.Security.EncryptionPolicy类作为参数。
为基于密码的身份验证模式,如在System.Net.NetworkCredential类中定义的基本型(Basic),摘要式(Digest),NTLM和Kerberos身份验证等模式,提供证书支持。为了提高安全性,现在可以把密码视为System.Security.SecureString类的实现,而不是简单的System.String类的实例。
现在,能够指定如何在System.URI和System.Net.HttpListener类中使用百分比编码值来转换和规范化一个URI。有关的详细信息,请参阅System.Net.Configuration.HttpListenerElement,System.Configuratio.SchemeSettingElement,System.Configuration.SchemeSettingElementCollection和System.Configuration.UriSection等几个类。
5.工作流
Windows通信基础(WCF)实现了消息管理方面的增强并提供与Windows工作流基础(WF)的无缝集成。WF提供的改进体现在性能、可扩展性、工作流建模以及一个更新的可视化设计器等方面。有关该内容的更多的信息,请参考《Windows通信基础新特征概述》和《Windows工作流基础新特征概述》。
6.并行计算
.NET框架 4针对编写多线程和异步代码引入了一个新的编程模式,从而极大地简化了应用程序和库开发者的编程。此新的模式可以使开发人员以一种自然的方式来编写高效的,良好粒度的,可扩展的并行代码,而不必直接使用线程或线程池等。新的System.Threading.Tasks命名空间和其他相关类型支持这种新模式。并行LINQ(PLINQ),作为LINQ to Objects的一种并行实现,能够通过声明性语法支持类似的功能。有关该内容的更多的信息,请参阅《.NET框架并行程序设计》。
7. 托管扩展性框架
托管扩展性框架(MEF)是.NET框架4中的一个新库,帮助您构建可扩展的和可组合式应用程序。MEF可以让您指定在一个应用程序中的扩展点,给其他扩展的应用程序提供服务,以及创建可扩展应用程序所使用的部件等。MEF还支持很容易地基于元数据搜索到可用的部件,而无需为这些部件加载相应的程序集。有关该内容的更多的信息,请参阅《托管可扩展框架》。有关MEF类型的列表,你可以参阅System.ComponentModel.Composition命名空间。
8.委托机制
《C#程序员参考手册》:C#使用一种委托模型来实现事件。事件的处理方法不必在将生成事件的类中定义。这种机制有许多优势。例如,它既有普遍性,又很灵活。设想应用程序中有两个按钮,但这两个按钮的作用不同。如果事件处理程序被绑定到事件源,我们可能必须写两个派生的按钮类,每个派生类有自己的事件处理程序。
委托的理解
首先申明,这只是我举的一个例子,目的是帮助理解委托的过程,其中很多地方都经不起推敲,望大家知悉。
你想要吃饭,
但是自己又不会做(委托方不知道实现细节),
你计划找个饭店,叫个回锅肉饭(定义了一个委托)
你决定找常去的那家叫做A的饭店(实例化一个委托)
你打电话给A饭店(委托调用)
A饭店给你做好了你的回锅肉饭(代理函数工作)
饭来了,真好。
委托的使用时机当你需要把一个方法传送给其他方法时,可以考虑使用委托。三叉子好像不是很好理解,也可以这样说,当你确定要处理一件事,但又不能确定处理方法时,可以考虑用委托。其实单独的说委托的应用好像有点牵强,委托更多的是在事件中的应用。
代码如下:
输出为:This is a delegate demoMethod ShowMessage out: delegate instance singleDelestatic Method SShowMessage out: delegate instance deleStaticMethMethod ShowMessage out: this is a MultiDelestatic Method SShowMessage out: this is a MultiDele
可见:方法函数可以是类成员函数,也可以是一个静态成员,只要和委托的签名相同就可以了。
阅读(1078) | 评论(0) | 转发(0) |