在 Lambda 表達式中,可以通過捕獲外部變量來訪問外部作用域中的變量。在 C# 中,Lambda 表達式捕獲外部變量的方式有兩種:
int x = 10;
Func<int, int> func = y => x + y;
Console.WriteLine(func(5)); // 輸出 15
在這個例子中,Lambda 表達式捕獲了外部變量 x,并在表達式中使用了它。
ref
或 out
關鍵字來顯示地捕獲外部變量。例如:int x = 10;
Action<int> action = (ref int y) => y += x;
int result = 5;
action(ref result);
Console.WriteLine(result); // 輸出 15
在這個例子中,Lambda 表達式使用 ref
關鍵字顯示地捕獲了外部變量 result,并修改了它的值。
需要注意的是,捕獲外部變量時需要注意外部變量的生命周期,確保外部變量在 Lambda 表達式執行時仍然有效。