C#lambda与闭包的个人理解

本文介绍了C#中的Lambda表达式,强调了它们可以转换为Action或Func委托类型,并解释了如何用Lambda定义属性。接着,文章探讨了闭包的概念,指出它涉及外部变量的持久化,可能导致内存管理问题。通过示例展示了闭包在for循环中的行为,说明了C#中闭包如何捕获并保存变量的值,最后讨论了闭包在数据管理中的作用和价值。
摘要由CSDN通过智能技术生成

1.lambada:
任何 Lambda 表达式都可以转换为委托类型。 Lambda 表达式可以转换的委托类型由其参数和返回值的类型定义。 如果 lambda 表达式不返回值,则可以将其转换为 Action 委托类型之一;否则,可将其转换为 Func 委托类型之一。注意的是,委托并不关心类,只关心关联方法的参数和返回值类型是否一致。

2.属性与lambada:
当一个属性 string demoString=>“One String”;
就会把return "One String"作为demoString的get访问器,并且不设置set访问器。

2.闭包:
闭包的定义,如果一个方法块,使用的外部变量,
Func1(){
int a;
Func2(){
a=3
}
}
这样使用的话,a就会从局部变量,变成长久存在的变量,这样的操作是要注意回收内存资源。C#中支持闭包的手段是lambda 表达式
如:

 class Program {
   

        static void Main(string[] args) {
   

            List<Func<int>> funcsList = 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值