首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> 關於C語言

C# 3.0 特性探秘 (八):從匿名方法到 Lambda 運算式的可讀性躍升

     編輯:關於C語言

痛點:一句話方法


btnRefresh.Click += new EventHandler(btnRefresh_Click);
void btnRefresh_Click(object s, EventArgs e) { BindData(); } // 僅呼叫一行

C# 2.0 匿名方法


btnRefresh.Click += delegate(object s, EventArgs e) { BindData(); };

編譯器仍生成私有方法 b__0,僅節省源碼行數。

C# 3.0 Lambda 可讀性突破


// 匿名方法調用 List.Find
books.Find(delegate(Book b) { return b.Price < 50; });

// Lambda
books.Find(b => b.Price < 50); // 自然語言:「給你一本書,若價格<50 則真」

Lambda 結構圖解

Lambda 結構

參數 => 運算式/陳述式,=> 讀作 "goes to"。參數型別可省略 (編譯器推斷),主體可為運算式 (隱含返回) 或陳述式塊。

總結

  • 匿名方法解決「不想寫方法」問題。
  • Lambda 解決「代碼可讀性」問題,讓函數式風格在 C# 落地。
  • 為 LINQ 查詢語法 (from...where...select) 鋪平道路。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved