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

温州高端企业网站建设深圳网站制作哪家好

温州高端企业网站建设,深圳网站制作哪家好,建站网站教程视频教程,主题商店网站设计一.匿名方法 1.匿名方法的演变 匿名方法是为了简化委托的实现,方便调用委托方法而出现的,同时,匿名方法也是学好lambda表达式的基础。在委托调用的方法中,如果方法只被调用一次,这个时候我们就没有必要创建具名方法&…

一.匿名方法

1.匿名方法的演变

匿名方法是为了简化委托的实现,方便调用委托方法而出现的,同时,匿名方法也是学好lambda表达式的基础。在委托调用的方法中,如果方法只被调用一次,这个时候我们就没有必要创建具名方法,从而用匿名方法更为方便。
下面一段代码是声明并使用了一个名称为Add20的方法(和之前的写法一样)

namespace demo1_0726
{public delegate int OtherDel(int n);//声明委托internal class Program{public static int Add20(int x){return x + 20;}static void Main(string[] args){OtherDel otherDel = new OtherDel(Add20);Console.WriteLine("{0}", otherDel(5));Console.WriteLine("{0}", otherDel(6));Console.ReadKey();}}
}

下面的一段代码使用了匿名方法来替代Add20

namespace demo2_0726
{public delegate int OtherDel(int n);//声明委托internal class Program{static void Main(string[] args){OtherDel otherDel = delegate (int x){      return x + 20; };Console.WriteLine("{0}", otherDel(5));Console.WriteLine("{0}", otherDel(6));Console.ReadKey();}}
}

2.匿名方法的使用

可以在如下地方使用匿名方法
(1)声明委托变量时作为初始化表达式
(2)组合委托时在赋值语句的右边
(3)为委托增加事件时在赋值语句的右边

3.匿名方法的语法

匿名方法表达式的语法包含如下部分:

//delegate类型关键字
//参数列表,如果语句块没有使用任何参数则可以省略
//语句块,包含了匿名方法的代码
//关键字( 参数列表) { 语句块 }
delegate (Parameters) {ImplementationCode}

1.返回类型

匿名方法不会显示声明返回值。如果委托有void类型的返回值,匿名方法就不能有返回值。

//这里委托类型的返回类型是整形
delegate int OtherDel(int InParam);
static void Main()
{
OtherDel del=delegate(int x){return x+20;//返回一个整型值};
......              
}

2.参数

除了数组参数,匿名方法的参数列表必须在以下3方面与委托匹配:
参数数量;参数类型及位置;修饰符
以下情况,我们可以使圆括号为空或省略圆括号来简化匿名方法的参数列表(两项同时成立)
1 委托的参数列表不包含任何out参数
2 匿名方法不使用任何参数
举例

namespace demo2_0726
{public delegate void OtherDel(int n);//声明委托internal class Program{static void Main(string[] args){Program program = new Program();//OtherDel otherDel = delegate (int n)//可以写全OtherDel otherDel = delegate //也可以省略括号{program.sum();program.subtract();};otherDel(5);Console.ReadKey();}void sum(){int n = 4;n += 3;}void subtract(){int n = 4;n -= 2;}}
}

3.params参数

如果声明委托的参数列表包含了params参数,那么params关键字在匿名方法的参数列表中就会被省略:

delegate void SomeDel(int X,params int[] Y)//在委托声明中使用params关键字
SomeDel mDel=delegate(int X, int[] Y)//在匹配的匿名方法中省略关键字
{
...
};

4.变量和参数的作用域

1 参数以及声明在匿名方法内部的局部变量的作用域限制在实现方法的主体之内.
2 与委托的具名方法不同,匿名方法可以访问它们外围作用域的局部变量和环境,方法中的代码可以访问外围变量并且输出它的值。

二.Lambda表达式

1.Lambda表达式简介

C#2.0引入了匿名方法,C#3.0引入了Lambda表达式,匿名方法演变成Lambda表达式,在使用中我们更希望使用Lambda表达式来替代匿名方法。

2.匿名方法转换为Lambda表达式的步骤

1 删除delegate关键字
2 在参数列表和匿名方法主体之间放lambda运算符=>。lambda运算符读作goes to

Mydel del=delegate(int x)  {return x+1;};//匿名方法
Mydel le1=        (int x)=>{return x+1;};//Lambda表达式

3.简化Lambda表达式

(1) 编译器可以从委托的声明中知道委托参数的类型,因此Lambda表达式允许我们省略类型参数。
带有类型的参数列表称为显示类型
省略类型的参数列表称为隐式类型
(2)如果只有一个隐式类型参数,我们可以省略周围的括号。
(3)Lambda表达式允许表达式的主体是语句块或者表达式。如果语句块包含了一个返回语句,我们可以将语句块替换为return关键字后的表达式(即去掉关键字return)。

Mydel del=delegate(int x)  {return x+1;};//匿名方法
Mydel le1=        (int x)=>{return x+1;};//Lambda表达式
Mydel le1=            (x)=>{return x+1;};//省略类型的Lambda表达式
Mydel le1=             x =>{return x+1;};//省略隐式类型周围的括号的Lambda表达式
Mydel le1=             x =>        x+1  ;//去掉关键字return的Lambda表达式

4.Lambda表达式的注意事项

(1) Lambda表达式参数列表中的参数必须在参数数量、类型和位置上与委托相匹配;
(2) 表达式的参数列表中的参数不一定需要包含类型(隐式类型),除非委托有ref或out参数–此时必须注明类型(显示类型)
(3) 如果只有一个隐式类型参数并且是隐式类型的,我们可以省略周围的括号。,否则必须有括号
(4) 如果没有参数,必须使用一组空的圆括号。

http://www.dt0577.cn/news/34360.html

相关文章:

  • 做网站插音乐怎么隐藏网站seo优化技能
  • 受欢迎的邢台做网站网站建设报价单模板
  • 建设市民中心网站seo服务 文库
  • 做一个网站需要多大的空间网站关键词排名怎么优化
  • 专业网站建设多少钱友联互换
  • 深圳有名的网站设计公司关键词研究工具
  • 做任务游戏能赚钱的网站游戏推广员到底犯不犯法
  • 广州新塘网站制作推广班级优化大师下载
  • 给非法公司做网站维护友链交换不限内容
  • 设置字体颜色的网站软文推广渠道主要有
  • js怎么做网站客服聊天专业搜索引擎seo合作
  • 人才市场网站建设论文全网营销推广方案
  • 做招聘网站用哪个cms百度收录快速提交
  • 注册公司费用是多少网站怎么优化排名
  • 简易的网站制作网站优化和网站推广
  • 彩票网站链接怎么做地推接单正规平台
  • wordpress 注册 邮件seo网站关键词排名优化公司
  • 惠州做网站优化seo排名技术软件
  • 如何做独立的网站销售少儿编程培训机构排名前十
  • 网站ip屏蔽百度搜索热度查询
  • 做网站的公司主要工作专业做网站公司
  • vb.net 网站开发实例湖南百度推广开户
  • 做网站英文编辑有前途吗网站快速排名服务商
  • 金昌网站建设seo整站优化公司持续监控
  • 哪些网站可以做ppi做个公司网站一般需要多少钱
  • 武夷山网站建设成都网站改版优化
  • 四川日报招标比选网长治网站seo
  • 顺德做网站公司哪家好优化大师班级优化大师
  • 品牌型网站建设特点游戏推广公司好做吗
  • 厦门营销型网站建设公司服装品牌策划方案