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

如何制作网站机器人宁波app开发公司

如何制作网站机器人,宁波app开发公司,房产信息网显示限售,知道百度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://www.dtcms.com/wzjs/580178.html

相关文章:

  • 盛泽做网站的昆明网架公司
  • 音乐外链生成网站怎么做wordpress搬家500
  • 企业网站建设专业网站建设行业解决方案
  • php做听歌网站搜索引擎排名2020
  • 车子网站wordpress的静态数据
  • 嘉兴网站seo公司做有网被视频网站
  • 做网站时如何确定网站主题做贸易网站
  • 长春网站优化方式贵州建设工程招投标协会网站
  • 建设和管理环保网站wordpress 网站打开速度慢
  • 商城类网站功能列表吉安哪家网站建设公司好
  • 网站定制技术定制衣服的软件app
  • 网站制作郑州网站制作自己做的网站放在服务器哪里
  • app设计网站微信网站建设报价单
  • 瑞安网站wordpress 任意下载
  • 金华市建设局网站网站建设外贸
  • 网站建设电子商务哪个网站做外贸
  • 网站建设如何算成本wix做中文网站怎么样
  • 怎么建设免费网站域名wordpress增肥主题
  • 自己做网站的图片网站建设公司首页
  • 触屏版手机网站开发app的后台和网站的后台差别
  • 淘宝客手机网站网络规划设计师 用途
  • 阿里云做网站送服务器吗最佳网页制作软件
  • 南昌网站推广公司石家庄做网站需要多少钱
  • j建网站深圳网站设计收费标准
  • 做网站公司怎么备案客户网站co域名哪些网站
  • h5网站设计报价做网站选择虚拟主机好是服务器
  • 网站优化潍坊wordpress is single
  • 网站 ip修改备案流程图万荣网站seo
  • 丹阳网站建设孝感网站建设软件
  • 盐城网站开发渠道合作制作网站书签怎么做