在C#中,閉包是指一個函數(shù)可以訪問其創(chuàng)建時的環(huán)境變量,即使在其定義的范圍外部調(diào)用該函數(shù)。閉包在C#中通常使用lambda表達式來定義。
下面是一個示例,展示了如何定義和使用閉包:
using System;
class Program
{
static void Main()
{
// 定義閉包函數(shù)
Func<int, int> adder = (int x) =>
{
int y = 5;
return x + y;
};
// 使用閉包函數(shù)
int result = adder(3);
Console.WriteLine(result); // 輸出 8
}
}
在上面的示例中,adder函數(shù)是一個閉包函數(shù),它可以訪問在其定義時的外部變量y。當調(diào)用adder函數(shù)時,會將參數(shù)x與外部變量y相加并返回結果。
通過閉包,我們可以實現(xiàn)更靈活和復雜的功能,同時保持代碼的簡潔和易讀性。