程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> 關於C語言 >> 初探C# 3.0(1)

初探C# 3.0(1)

編輯:關於C語言
#3.0已經推出好一段時間了,由於種種原因,一直沒有去學習,這兩天在園 子中看到老趙的拯救C# 2.0,但是我們真做的到嗎?。裡面提到了些C#3.0的新 特性和優勢。勾起了我對3.0的興趣,初探學習一下,分享給新手。

在 C#2.0中,微軟給我們帶來了一些新的特性,例如泛型,匿名委托等。然而,這 些新的特性多多少少會給人一種從別的語言中“抄”來的感覺(例如 泛型類似C++的模板,一些特性類似Java中的一些東西)。但是在C#3.0中,微軟 給我帶來的一些新特性可能是以前所有開發語言都沒有的特性。這無疑大大的體 現了C#3.0在開發語言中強大的優勢。

Lambda表達式

Lambda 表達 式是一個匿名函數,它可以包含表達式和語句,並且可用於創建委托或表達式目 錄樹類型。所有 Lambda 表達式都使用 Lambda 運算符 =>。關於Lambda更詳 細的講解大家可以參看 MSDN。裡面說的很清楚。

這裡簡單舉個例子來說 明Lambda的好處。Lambda在對匿名委托的處理上提供了更清楚的實施方式。例如 在2.0中。我們可以寫這樣的代碼:

public class Example
{
   public static void Demo (System.Windows.Controls.TextBlock outputBlock)
   {
       Func<string, string> convert = delegate(string s)
          { return s.ToUpper(); };

      string name = "Dakota";
      outputBlock.Text += convert(name) + "\n";
   }
}

在 C# 中將 Func<(Of <(T, TResult>)>) 委托與匿名方法一起使用。

在3.0中,我們可以使用Lambda來更清楚的進行參數的傳遞:

public class Example
{
   public static void Demo(System.Windows.Controls.TextBlock outputBlock)
   {
      Func<string, string> convert = s => s.ToUpper ();

      string name = "Dakota";
       outputBlock.Text += convert(name) + "\n";
   }
}

Lambda 表達式的基礎類型是泛型 Func 委托之一。這 樣能以參數形式傳遞 lambda 表達式,而不用顯式將其分配給委托。尤其是,因 為 System.Linq 命名空間中許多類型方法具有 Func<(Of <(T, TResult>)>) 參數,因此可以給這些方法傳遞 lambda 表達式,而不用顯 式實例化 Func<(Of <(T, TResult>)>) 委托。這樣可以使我們的 代碼更加簡潔,邏輯上更易於理解。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved