C#3.0新特性小結(1)

安裝了VS2008後在園子上看到關於LinQ和SilverLight一些技術的討論,其中涉及到c#3.0的新特性。晚上回來作了一個小實例感受新特性還不錯,更加人性化。c#

園子裏也有很多人關於這方面的介紹文章,今天加以小結做爲備忘,也爲學習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等等。從自身角度而言爲了長遠發展有必要掌握新特性.廢話少說。來看看主要有那些新特性:ide

--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中新特性。在以下系列文章中我會逐個介紹他們特色和使用方法:首先介紹自動屬性學習

自動屬性spa

在.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」等訪問級別。上面代碼就能夠簡化成這樣:ci

  
  
           
  
  
  1. --C#3.0自動屬性  
  2. pulic class Company  
  3. {  
  4.    private string companyName{get;set;}  
  5.    //很簡單封裝  

編譯器會自動建立一個私有字段,並讓獲取訪問器Geter和設置訪問器Seter指向這個私有字段,用於用戶引用操做,自動屬性很大程度上簡化代碼編寫繁瑣,這樣作咱們能有更多精力放在業務邏輯的實現上。下一節講對自動屬性作必定實例的補充並進一步介紹其餘新特性。開發

相關文章
相關標籤/搜索