安裝了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推薦採用屬性來表達封裝.對象
- --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」等訪問級別。上面代碼就能夠簡化成這樣:ci
- --C#3.0自動屬性
- pulic class Company
- {
- private string companyName{get;set;}
- //很簡單封裝
- }
編譯器會自動建立一個私有字段,並讓獲取訪問器Geter和設置訪問器Seter指向這個私有字段,用於用戶引用操做,自動屬性很大程度上簡化代碼編寫繁瑣,這樣作咱們能有更多精力放在業務邏輯的實現上。下一節講對自動屬性作必定實例的補充並進一步介紹其餘新特性。開發