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

C# 3.0語言新特性(語言規范):8 表達式樹

編輯:關於C語言

原文:《C# Version 3.0 Specification》,Microsoft
翻譯:lover_P
表達式樹允許將拉姆達表達式表現為數據結構而不是可執行代碼。一個可以轉換為委托類型D的拉姆達表達式也可以轉換為一個類型為System.Query.Expression<D>的表達式樹。將一個拉姆達表達式轉換為委托類型導致可執行代碼被委托所生成和引用,而將其轉換為一個表達式樹類型將導致創建了表達式樹實例的代碼被發出(Emit)。表達式樹是拉姆達表達式的一種高效的內存中(in-memory)數據表現形式,並且使得表達式的結構變得透明和明顯。

下面的例子將一個拉姆達表達式分別表現為了可執行代碼和表達式樹。由於存在到Func<int, int>的轉換,因此存在到Expression<Func<int, int>>的轉換。

Func<int, int> f = x => x + 1;                 // 代碼

Expression<Func<int, int>> e = x => x + 1;  // 數據

在這些賦值完成之後,委托f標識一個返回x + 1的方法,而表達式樹e表示一個描述了表達式x + 1的數據結構。

注意

表達式樹的結構將被轉換為一份單獨的規范。該規范在PDC 2005技術預覽版中並不適用。

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