**閉包**:函數與其**詞法環境(捕獲的外部變量)的組合**。內部函數可訪問定義時作用域的變量,即使外部函數已返回。
Func MakeMultiplier(int factor) {
return x => x * factor; // Lambda 捕獲 factor
}
var times3 = MakeMultiplier(3);
var times5 = MakeMultiplier(5);
Console.WriteLine(times3(10)); // 30
Console.WriteLine(times5(10)); // 50
// factor 應隨 MakeMultiplier 結束銷毀,但被 Lambda 閉包「捕獲」保活