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指向这个私有字段,用于用户引用操作,自动属性很大程度上简化代码编写繁琐,这样做我们能有更多精力放在业务逻辑的实现上。下一节讲对自动属性做一定实例的补充并进一步介绍其他新特性。



本文转自chenkaiunion 51CTO博客,原文链接:http://blog.51cto.com/chenkai/765471

相关文章
|
1月前
|
C#
C#学习相关系列之数据类型类的三大特性(二)
C#学习相关系列之数据类型类的三大特性(二)
|
3月前
|
编译器 C# 开发者
C# 11.0中的新特性:覆盖默认接口方法
C# 11.0进一步增强了接口的灵活性,引入了覆盖默认接口方法的能力。这一新特性允许类在实现接口时,不仅可以提供接口中未实现的方法的具体实现,还可以覆盖接口中定义的默认方法实现。本文将详细介绍C# 11.0中接口默认方法覆盖的工作原理、使用场景及其对现有代码的影响,帮助开发者更好地理解和应用这一新功能。
|
3月前
|
编译器 C# 开发者
C# 9.0中的顶级语句:简化程序入口的新特性
【1月更文挑战第13天】本文介绍了C# 9.0中引入的顶级语句(Top-level statements)特性,该特性允许开发者在不使用传统的类和方法结构的情况下编写简洁的程序入口代码。文章详细阐述了顶级语句的语法、使用场景以及与传统程序结构的区别,并通过示例代码展示了其在实际应用中的便捷性。
|
API C#
C#反射与特性(三):反射类型的成员
C#反射与特性(三):反射类型的成员
248 0
|
3月前
|
开发框架 .NET Java
ASP.NET Core高级编程--C#基本特性(一)
本文章简略介绍C#的部分特性
|
5月前
|
C#
c#之Attribute特性的原理
c#之Attribute特性的原理
23 0
|
9月前
|
数据可视化 程序员 C#
C# 面向对象三大特性
C# 面向对象三大特性
65 0
|
缓存 IDE API
C#反射与特性(五):主类型成员操作
C#反射与特性(五):主类型成员操作
328 0
C#反射与特性(五):主类型成员操作
|
C# 图形学
C#——特性
C#——特性
52 0
|
开发框架 .NET C#
C#版本与. NET版本对应关系以及各版本的特性
C#版本与. NET版本对应关系以及各版本的特性
435 0