首页 > 代码库 > Lamda所有的Capture均是引用
Lamda所有的Capture均是引用
【Lamda所有的Capture均是引用】
下面的程序,两个lambda 引用的实际上是同一个a、b。连int都能引用了,说明Lambda对所有类型都是以引用来处理。
1 int a = 0; 2 int b = 1; 3 Func<int> exe = ()=>{ 4 int tmp = a; 5 a = b; 6 b = tmp+b; 7 return a; 8 }; 9 Debug.Log("a1 = " + exe());10 Debug.Log("a2 = " + exe());11 Debug.Log("a3 = " + exe());12 Debug.Log("a4 = " + exe());13 Debug.Log("a5 = " + exe());14 15 Func<int> exe2 = ()=>{16 int tmp = a;17 a = b;18 b = tmp+b;19 return a;20 };21 Debug.Log("a1 = " + exe2());22 Debug.Log("a2 = " + exe2());23 Debug.Log("a3 = " + exe2());24 Debug.Log("a4 = " + exe2());25 Debug.Log("a5 = " + exe2());
结果为:
Lamda所有的Capture均是引用
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。