首頁  >  文章  >  後端開發  >  C#中的Lambda表達式是什麼?

C#中的Lambda表達式是什麼?

王林
王林轉載
2023-09-08 14:25:15649瀏覽

C#中的Lambda表達式是什麼?

Lambda 表達式是表示匿名方法的更好方法。匿名方法和 Lambda 表達式都允許您內聯定義方法實現,但是,匿名方法明確要求您定義方法的參數類型和傳回類型。

以表達式作為其表達式的表達式 lambda身體: (input−parameters) => 表達式

以語句區塊作為其主體的語句 lambda: (input−parameters) => { }

任何 lambda 表達式都可以轉換為委託類型。 lambda 表達式可以轉換為的委託類型由其參數和傳回值的型別定義。如果 lambda 表達式不傳回值,則可以將其轉換為 Action 委託類型之一;否則,它可以轉換為 Func 委託類型之一。

static void Main(string[] args){
   Func<int, int> square = x => x * x;
   Console.WriteLine(square(5));
   Console.ReadLine();
}

=> 運算子右邊有一個表達式的 lambda 表達式稱為表達式 lambda。表達式lambda 傳回表達式的結果,並採用以下基本形式

Action line = () => Console.WriteLine();

Funccube = x => x * x * x;

Func testForEquality = (x, y) => x == y;

Func isTooLong = (int x, string s) => s .Length > x;

C# 7.0 中,C# 語言提供了對元組的內建支援。您可以提供一個元組作為 lambda 表達式的參數,並且您的 lambda 表達式也可以傳回一個元組。

lambda 表達式中引入的變數在封閉方法中不可見。

lambda 表達式無法直接從封閉方法擷取 in、ref 或 out 參數。

lambda 表達式中的 return 語句不會導致封閉方法回傳。

如果跳轉語句的目標位於 lambda 表達式區塊之外,則 lambda 表達式不能包含 goto、break 或 continue 語句。如果目標位於 lambda 表達式區塊內部,則在 lambda 表達式區塊外部使用跳躍語句也是錯誤的。

以上是C#中的Lambda表達式是什麼?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:tutorialspoint.com。如有侵權,請聯絡admin@php.cn刪除