C#3.0新特性小结(1)
2009-03-01 23:51 chenkai 阅读(2826) 评论(8) 编辑 收藏 举报安装了VS2008后在园子上看到关于LinQ和SilverLight一些技术的讨论,其中涉及到c#3.0的新特性。晚上回来做了一个小实例感觉新特性还不错,更加人性化。
园子里也有不少人关于这方面的介绍文章,今天加以小结作为备忘,也为学习LinQ和SilverLight做点基础。
VS2008开发支持在。NET3.0框架上,总体而言是从。NET2.0框架基础上添加了一些新特性。当然.NET2.0中核心不会发生变化。C#3.0在此基础上进行一定改进,方便我们编写程序,并把主要的精力放在业务逻辑的实现上,减少重复工作,例如新特性中自动属性把字段的封装更加集成化了,把更多的重复工作交给了编译器来做,首先介绍下.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等等。从自身角度而言为了长远发展有必要掌握新特性.废话少说。来看看主要有那些新特性:
总共出现6中新特性。在如下系列文章中我会逐个介绍他们特点和使用方法:首先介绍自动属性
自动属性
在.NET2.0我们在编辑一个实体类时常需要定义属性:属性是对私有字段一种封装,C#不提倡将域的保护级别设为public而使用户在类外任意操作--那样太不OO,或者具体点说太不安全,对所有有必要在类外可见的域,C#2.0推荐采用属性来表达封装.
--C#2.0中属性
public class Company
{
private string companyName;
public string CompanyName
{
get { return CompanyName; }
set { CompanyName= value; }
}
}
在C#2.0中我们在定义实体时尽量将公开的字段定义为属性,但是随之而来的编写代码的繁杂。正好可以用到C#3.0自动解决这一问题。避免原来这样我们手工声明一个私有成员变量以及编写get/set逻辑这种重复工作。把它交给编译器。编译器会自动地生成私有变量和默认的get/set 操作。你也可以分别定义get和set的“protected”等访问级别。上面代码就可以简化成这样:
编译器会自动创建一个私有字段,并让获取访问器Geter和设置访问器Seter指向这个私有字段,用于用户引用操作,自动属性很大程度上简化代码编写繁琐,这样做我们能有更多精力放在业务逻辑的实现上。下一节讲对自动属性做一定实例的补充并进一步介绍其他新特性。