当前位置: 首页 > wzjs >正文

宁晋网站开发搭建wordpress课程管理系统

宁晋网站开发搭建,wordpress课程管理系统,用网站开发客户发邮件,网站宣传创意视频C#知识&#xff1a;匿名方法、Lambda表达式与闭包 闭包乍一听感觉很复杂&#xff0c;其实一点也不简单 1、匿名方法 没有方法名的方法一般用于委托和事件 Func<int, int, int> myAction delegate(int a, int b) { return a b; }; Console.WriteLine( myAction(1, 2)…

C#知识:匿名方法、Lambda表达式与闭包

闭包乍一听感觉很复杂,其实一点也不简单


1、匿名方法

  • 没有方法名的方法
  • 一般用于委托和事件
Func<int, int, int> myAction  = delegate(int a, int b) { return a + b; };
Console.WriteLine( myAction(1, 2)); //3

2、Lambda表达式

  • 作用类似匿名函数
  • 可以省略参数类型,大括号和return关键字
myAction = (a, b) => a * b;
Console.WriteLine(myAction(2,3));   //6

3、闭包

  • 是内层函数与引用的外层函数中的外部变量的绑定
  • 闭包会延长所引用的外部变量的生命周期
  • 从绑定关系角度来看,闭包中的外部变量对于内层函数,类似于静态成员变量对于类变量
static void Test(ref Func<int> myFunc)
{int value = 2;myFunc = () => ++value;
}
Func<int> myFunc = null;
Test(ref myFunc);
Console.WriteLine(myFunc());    //3
Console.WriteLine(myFunc());    //4
  • 内层函数会捕获外部变量的引用

这里闭包中捕获的是myCake对象的引用,在外面修改了myCake对象的成员变量的值,修改也会反映到闭包中。

static Cake Test2(ref Func<int> myFunc) 
{Cake myCake = new Cake(100);myFunc = () => ++myCake.price;myCake.price += 10;return myCake;
}
Func<int> myFunc2 = null;
Cake fruitCake = Test2(ref myFunc2);
Console.WriteLine(myFunc2());   //111
Console.WriteLine(myFunc2());   //112
fruitCake.price = 10086;
Console.WriteLine(myFunc2());   //10087
Console.WriteLine(myFunc2());   //10088

4、完整代码示例

namespace LearnLambda
{internal class Program{class Cake{public int price;public Cake(int price) => this.price = price;}static void Test(ref Func<int> myFunc){int value = 2;myFunc = () => ++value;}static Cake Test2(ref Func<int> myFunc) {Cake myCake = new Cake(100);myFunc = () => ++myCake.price;myCake.price += 10;return myCake;}static void Main(string[] args){//匿名方法Func<int, int, int> myAction  = delegate(int a, int b) { return a + b; };Console.WriteLine( myAction(1, 2)); //3//Lambda表达式myAction = (a, b) => a * b;Console.WriteLine(myAction(2,3));   //6//闭包Func<int> myFunc = null;Test(ref myFunc);Console.WriteLine(myFunc());    //3Console.WriteLine(myFunc());    //4Func<int> myFunc2 = null;Cake fruitCake = Test2(ref myFunc2);Console.WriteLine(myFunc2());   //111Console.WriteLine(myFunc2());   //112fruitCake.price = 10086;Console.WriteLine(myFunc2());   //10087Console.WriteLine(myFunc2());   //10088}}
}

5、参考资料

  1. 《唐老狮C#》
  2. C#—闭包详解

本篇结束,感谢您的阅读~

在这里插入图片描述


文章转载自:

http://lTl8XFhb.pbtdr.cn
http://KAZgTuok.pbtdr.cn
http://2NVhK1NZ.pbtdr.cn
http://MD7DnHE1.pbtdr.cn
http://2RTYBoxS.pbtdr.cn
http://0s3h4CAv.pbtdr.cn
http://J3cml2ui.pbtdr.cn
http://UpZ1iRv0.pbtdr.cn
http://LzLR0EG7.pbtdr.cn
http://xhyzi7E1.pbtdr.cn
http://1ccyiYfP.pbtdr.cn
http://b0uOz7QN.pbtdr.cn
http://iqXS4R0Y.pbtdr.cn
http://hblxchw3.pbtdr.cn
http://HGpUJw9J.pbtdr.cn
http://diqSchUA.pbtdr.cn
http://Cu89Lgcu.pbtdr.cn
http://HHvqlODj.pbtdr.cn
http://LcN6LIu6.pbtdr.cn
http://QGiGzdJy.pbtdr.cn
http://gY53RPz8.pbtdr.cn
http://9CZhwyjr.pbtdr.cn
http://zteVRwGA.pbtdr.cn
http://jphEWiUr.pbtdr.cn
http://8P0ohdRM.pbtdr.cn
http://9jNPpv8R.pbtdr.cn
http://fiBonwHF.pbtdr.cn
http://bu2bzyeM.pbtdr.cn
http://YArggIMN.pbtdr.cn
http://KPlbVjar.pbtdr.cn
http://www.dtcms.com/wzjs/727830.html

相关文章:

  • 做网站网页挣钱不电影网站建设的意义
  • 网站架构设计图怎么做应用制作下载
  • 番禺做网站设计什么是用户主导的网络营销方式
  • 个人网站开发要多久杭州萧山区抖音seo排行榜
  • 做阿里巴巴小企业网站网页设计购物网站建设
  • 谷歌网站英文含山县住房和城乡建设局网站
  • 潍坊网站建设求职简历企业网站推广费用
  • 网站icp备案查询截图wordpress 更好 知乎
  • 网站标题关键字湛江做网站从
  • 网站建设网络推广微信网站公司备案证查询网站查询
  • 城乡建设厅建筑特种作业证书查询商城网站怎么做优化
  • 网站运营合同wordpress怎么上传音频
  • 查备案怎么查询宁波seo推广报价多少
  • 网站制作网页做网站效果怎么样
  • 宁夏石嘴山市城乡建设局提意见网站wordpress数据库访问优化
  • 网站网站平台建设方案wordpress 精美主题
  • 微信登陆wordpress泉州网站关键词优化
  • 开通网站需要多少钱网页自动点击软件
  • 网站seo方法营销方案100个软文
  • 橙色 网站陇南市建设局网站公示
  • 云主机 怎么做网站网站的登录弹窗怎么做
  • 南通建网站做团餐 承包食堂的企业网站
  • 无代码网站建设开发网站建设的问卷调查
  • 太原网站怎么做seo免费建站网站教程
  • 建站之星怎么安装爱情动作片做网站
  • 响应式建站网站seo和sem是什么意思啊
  • 小俊哥网站建设鞍山云网站
  • 南京seo网站建设费用python做网站的多吗
  • 专教做蛋糕的网站wordpress 导航条
  • 网站推广的方法网站建设 300元