C#3.0新特性小结(1)

安装了VS2008后在园子上看到关于LinQ和SilverLight一些技术的讨论,其中涉及到c#3.0的新特性。晚上回来做了一个小实例感觉新特性还不错,更加人性化。

园子里也有不少人关于这方面的介绍文章,今天加以小结作为备忘,也为学习LinQ和SilverLight做点基础。

VS2008开发支持在。NET3.0框架上,总体而言是从。NET2.0框架基础上添加了一些新特性。当然.NET2.0中核心不会发生变化。C#3.0在此基础上进行一定改进,方便我们编写程序,并把主要的精力放在业务逻辑的实现上,减少重复工作,例如新特性中自动属性把字段的封装更加集成化了,把更多的重复工作交给了编译器来做,首先介绍下.NET框架版本的更新:

--.NET版本的更新次序

.NET框架:    .NET1.
0     .NET2.0     .NET3.0/3.5

C#语言版本:   C#
1.0       C#2.0       C#3.0

VS开发平台:   VS2003      VS2005       VS2008
 

现在VS2005仍然是目前主流开发平台,但随着VS2008和.NET3.0/3.5发布,开发平台渐渐从VS2005向VS2008开始过渡,目前已经在行业中形成一种趋势,在招聘信息我经常看到关于这方面要求:熟悉C#3.0新特性和熟练操作VS2008等等。从自身角度而言为了长远发展有必要掌握新特性.废话少说。来看看主要有那些新特性:

--C#3.0新特性
--Author:chenyang  Time:2009年3月1日23:13:46

*自动属性(Auto-Implemented Properties)
*隐含类型局部变量(Local Variable Type Inference) 
*匿名类型(Anonymous Types) 
*对象与集合初始化器(Object and Collection Initializers) 
*扩展方法(Extension Methods) 
*Lambda表达式和Lambda表达式树 (Lambda Expression and Lambda Expression Trees)  

总共出现6中新特性。在如下系列文章中我会逐个介绍他们特点和使用方法:首先介绍自动属性

自动属性

在.NET2.0我们在编辑一个实体类时常需要定义属性:属性是对私有字段一种封装,C#不提倡将域的保护级别设为public而使用户在类外任意操作--那样太不OO,或者具体点说太不安全,对所有有必要在类外可见的域,C#2.0推荐采用属性来表达封装.

  
  
  
  
  1. --C#2.0中属性  
  2. public class Company  
  3. {  
  4.     private string companyName;  
  5.       
  6.     public string CompanyName  
  7.     {  
  8.       get { return CompanyName; }  
  9.       set { CompanyName= value; }  
  10.     }  

在C#2.0中我们在定义实体时尽量将公开的字段定义为属性,但是随之而来的编写代码的繁杂。正好可以用到C#3.0自动解决这一问题。避免原来这样我们手工声明一个私有成员变量以及编写get/set逻辑这种重复工作。把它交给编译器。编译器会自动地生成私有变量和默认的get/set 操作。你也可以分别定义get和set的“protected”等访问级别。上面代码就可以简化成这样:

  
  
  
  
  1. --C#3.0自动属性  
  2. pulic class Company  
  3. {  
  4.    private string companyName{get;set;}  
  5.    //很简单封装  

编译器会自动创建一个私有字段,并让获取访问器Geter和设置访问器Seter指向这个私有字段,用于用户引用操作,自动属性很大程度上简化代码编写繁琐,这样做我们能有更多精力放在业务逻辑的实现上。下一节讲对自动属性做一定实例的补充并进一步介绍其他新特性。

你可能感兴趣的:(安装,技术,编译器,wp7,编写程序)