跳转至

闭包

在 C# 中,闭包(Closure)是指一个匿名函数(或 lambda 表达式)能够捕获并访问其外部作用域中的变量,即使创建该匿名函数的外部方法已经执行完毕。编译器会自动生成相应的类来保存捕获的变量,从而延长这些变量的生命周期。

闭包变量捕获

闭包都只会捕获它在代码中明确用到的变量,不会涉及同一作用域内的其他变量(除非这些变量也被闭包引用)。并且闭包捕获的是变量的引用,而不是变量的值。这意味着闭包内部对变量的修改会影响到外部变量本身。