C# lambda 表达式 和 闭包的概念

目录

lambda表达式


闭包

 内层的函数可以引用包含在它外层的函数的变量
 即使外层函数的执行已经终止
 注意:

 该变量提供的值并非变量创建时的值,而是在父函数范围内的最终值。

class Program
    {
    public static void Main()
    {
       Test test = new Test();
        test.DoSomeThing();    //输出10 20
        test .DoSomeThing();   //输出20 30

这两次输出不同证明了事件中存的匿名函数中的vlue是存的成员变量value的地址 

因为第一次test.doSomeTing();value地址中的值是10第二个匿名方法把value地址中的值改为了20

第二次执行事件中的两个匿名函数时,第一个匿名函数执行时value的值变为了20 所以输出20 第二个匿名函数value地址中存的值变为了30所以输出30


    }
    }
class Test
{
    public event Action action;
    public Test() 
    {
        int value =

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值