這篇文章不錯,《C#,語言的變遷》

來源:互聯網
上載者:User

這篇文章不錯,《C#,語言的變遷》

 

http://www.cnblogs.com/anytao/archive/2009/05/08/must_net_29.html

 

其中的看點:

 

 

看點1:

========

以最簡單的交換資料為例,我們來瞭解泛型帶來的好處:

// Release : code01, 2009/05/07// Author  : Anytao, http://www.anytao.compublic static void Swap(ref int x, ref int y){int temp = x;x = y;y = temp;}public static void Swap(ref string str1, ref string str2){string temp = str1;str1 = str2;str2 = temp;}

以上兩種演算法分別實現了對整型、字串型資料的交換,在泛型引入之前實現相同的交換演算法需要分別為所有的類型構建相似的處理邏輯,這顯然是一種代碼上的浪費,而泛型特性徹底解決了這一問題:

// Release : code02, 2009/05/07// Author  : Anytao, http://www.anytao.compublic static void Swap<T>(ref T t1, ref T t2){T temp = t1;t1 = t2;t2 = temp;}


看點2:
=============

 

 

以對象初始化器為例,在2.0時初始化對象成員,我們以這種方式實現:

User user = new User();user.Name = "小王";user.Age = 28;

在3.0中,實現對象初始化有了更好的解決方案,由對象初始化器來完成:

User user = new User { Name = "小王", Age = 28 };

同樣的方式可以用來實現集合的初始化和隱式類型的初始化等。

接著,我們再來瞭解一下自動屬性帶來的文法魅力,在3.0之前進行屬性封裝的是一件麻煩的事情,例如:

// Release : code03, 2009/05/07// Author  : Anytao, http://www.anytao.comclass User{private string name;public string Name{get { return name; }}private int age;public int Age{get { return age; }set { age = value; }}}

而自動屬性將這一切化簡為無形,文法簡單而功能依舊:

// Release : code04, 2009/05/07// Author  : Anytao, http://www.anytao.compublic class User{public string Name { get; set; }public int Age { get; set; }}

這些所有的新特性最終都為了一個共同的目標而鋪墊,這就是C# 3.0中最重量級的新特性:LINQ。所以,本文也不能少了對LINQ的討論,在代碼層級實作類別似於SQL式的查詢文法,以型別安全的通用方式完成增、刪、改、查等資料操作的基本方式。只要資料來源基於IEnumerable<T>介面而實現,那麼不管是關係型資料、記憶體中集合還是XML都可以作為LINQ查詢對象進行資料處理,這為物件導向語言實現函數式的編程體驗創造了條件,一種全新的編程風格為編程體驗刮來一股旋風:

// Release : code05, 2009/05/07// Author  : Anytao, http://www.anytao.compublic static void Main(){List<User> users = new List<User>{new User{Name = "小王", Age = 27},new User{Name = "小張", Age = 29},new User{Name = "小李", Age = 23}};IEnumerable<User> result = from user in userswhere user.Age < 30orderby user.Age descendingselect user;foreach (var user in result){//執行操作}}

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.