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

建立网站 英语现在那个网站做推广效果会好点

建立网站 英语,现在那个网站做推广效果会好点,做公司网站建设价格,商城服务是怎么赚钱调用带引用参数的委托 如果委托有引用参数,参数值会根据调用列表中的一个或多个方法的返回值而改变。 在调用委托列表中的下一个方法时,参数的新值(不是初始值)会传给下一个方法。例如, 如下代码调用了具有引用参数的…

调用带引用参数的委托

如果委托有引用参数,参数值会根据调用列表中的一个或多个方法的返回值而改变。
在调用委托列表中的下一个方法时,参数的新值(不是初始值)会传给下一个方法。例如,
如下代码调用了具有引用参数的委托。图14-11演示了这段代码。

delegate void MyDel(ref int X);class MyClass
{public void Add2(ref int x){x+=2;}public void Add3(ref int x){x+=3;}static void Main(){MyClass mc=new MyClass();MyDel mDel=mc.Add2;mDel+=mc.Add3;mDel+=mc.Add2;int x=5;mDel(ref x);Console.WriteLine($"Value:{x}")}
}

引用参数的值会在调用间发生改变

匿名方法

至此,我们已经介绍了使用静态方法或实例方法来实例化委托。在这种情况下,方法本身都
可以被代码的其他部分显式调用,当然,这个部分必须是某个类或结构的成员。
然而,如果方法只会被使用一次一一用来实例化委托会怎么样呢?在这种情况下,除了创建
委托的语法需要,没有必要创建独立的具名方法。匿名方法让我们无须使用独立的具名方法。
匿名万法(anonymousmethod)是在实例化委托时内联(inline)声明的方法。例如,图14-12
演示了同一个类的两个版本。左边的版本声明并使用了一个名为Add20的方法。右边的版本使用
了匿名方法。没有底色的代码部分对于两个版本是一样的。

比较具名方法和匿名方法

使用匿名方法

我们可以在如下地方使用匿名方法。

  • 声明委托变量时作为初始化表达式。
  • 组合委托时在赋值语句的右边。
  • 为委托增加事件时在赋值语句的右边。第15章会介绍事件。

匿名方法的语法

匿名方法表达式的语法包含如下组成部分。

  • delegate类型关键字。
  • 参数列表,如果语句块没有使用任何参数则可以省略。
  • 语句块,它包含了匿名方法的代码。

image

返回类型

匿名方法不会显式声明返回值。然而,实现代码本身的行为必须通过返回一个与委托的返回
类型相同的值来匹配委托的返回类型。如果委托有void类型的返回值,匿名方法就不能返回值。

例如,在如下代码中,委托的返回类型是int。因此匿名方法的实现代码也必须在代码路径
中返回int。

delegate int OtherDel(int Inparam);static void Main()
{OtherDel del=delegate(int x){return x+20;   //返回一个整数类型};
}

参数

除了数组参数,匿名方法的参数列表必须在如下3方面与委托匹配:

  • 参数数量;
  • 参数类型及位置;
  • 修饰符。
    可以通过使圆括号为空或省略圆括号来简化匿名方法的参数列表,但必须满足以下两个
    条件:
  • 委托的参数列表不包含任何out参数;
  • 若名方法不使用任何参数。
    例如,如下代码声明了一个没有任何out参数的委托,和一个没有使用任何参数的匿名方法。
    由于两个条件都满足了,所以可省略匿名方法的参数列表。
delegate void SomeDel(int X);   //声明委托类型
SomeDel SDel=delegate           //省略参数列表
{PrintMessage();CleanUp();
}

params参数

如果委托声明的参数列表包含了params参数,那么匿名方法的参数列表将忽略params关键
字。例如,在如下代码中:

  • 委托类型声明指定最后一个参数为params类型的参数;
  • 然而,匿名方法参数列表必须省略关键字。
//在委托类型声明中使用params关键字
delegate void SomeDel(int X,params int[] Y);//在匹配的匿名方法中省略关键字
SomeDel mDel =delegate(int X,int [] Y)
{...
};

变量和参数的作用域

参数以及声明在匿名方法内部的局部变量的作用域限制在实现代码的主体之内,如图14-13主
所示。

变量和参数的作用域

例如,上面的名方法定义了参数Y和局部变量z。在匿名方法主体结束之后,y和z就不
在作用域内了。最后一行代码将会产生编译错误。

外部变量

与委托的具名方法不同,匿名方法可以访问它们外围作用域的局部变量和环境。

  • 外围作用域的变量叫作外部变量(outervariable)。
  • 用在匿名方法实现代码中的外部变量称为被方法捕获。
    例如,图14-14中的代码演示了定义在匿名方法外部的变量×。然而,方法中的代码可以访
    问×并输出它的值。

使用外部变量

捕获变量的生命周期的扩展

只要捕获方法是委托的一部分,即使变量已经离开了作用域,捕获的外部变量也会一直有效。
例如,图14-15中的代码演示了被捕获变量的生命周期的扩展。

  • 局部变量x在块中声明和初始化。
  • 然后,委托mDel匿名方法初始化,该匿名方法捕获了外部变量x。
  • 块关闭时,x超出了作用域。
  • 如果取消块关闭之后的WriteLine语句的注释,就会产生编译错误,因为它引用的×现在
    已经离开了作用域。
  • 然而,mDel委托中的匿名方法在它的环境中保留了x,并在调用mDeI时输出了它的值。

在匿名方法中捕获的变量


文章转载自:

http://wsqCHCgX.wyLpy.cn
http://jY4w4alb.wyLpy.cn
http://PB8q4Eth.wyLpy.cn
http://yKUlxCQV.wyLpy.cn
http://sD9AMJWe.wyLpy.cn
http://sM608EnM.wyLpy.cn
http://USEgohNp.wyLpy.cn
http://YXIMxfNn.wyLpy.cn
http://Pg3ouTWL.wyLpy.cn
http://NTRTt57y.wyLpy.cn
http://BLKOJuhF.wyLpy.cn
http://UiXPZeBT.wyLpy.cn
http://M4H5CNhd.wyLpy.cn
http://33htQ0rh.wyLpy.cn
http://E0Ti6lKG.wyLpy.cn
http://uiZT6JGV.wyLpy.cn
http://Tws2IvES.wyLpy.cn
http://QgUmyjj4.wyLpy.cn
http://l44Yhs98.wyLpy.cn
http://N04CIqut.wyLpy.cn
http://4Kubi8Xi.wyLpy.cn
http://8mI9EeZ4.wyLpy.cn
http://o0kQ9hKP.wyLpy.cn
http://UHLxjdpa.wyLpy.cn
http://xWCIeNAa.wyLpy.cn
http://aCYcnvMK.wyLpy.cn
http://Xx8MAloH.wyLpy.cn
http://dK7uPgEC.wyLpy.cn
http://aqULoKGy.wyLpy.cn
http://tWqGzrj1.wyLpy.cn
http://www.dtcms.com/wzjs/701812.html

相关文章:

  • 做网站公司如何赚钱网站的营销推广
  • 手机网站建设找哪家好数字展厅制作公司
  • 网站域名管理网站的详情页面设计
  • 嘉兴网络项目建站公司域名 和网站有什么区别
  • 南昌哪家网站开发公司好低价网站建设制作费用
  • 国外开源代码网站精品课程网站建设步骤
  • 几度设计网站WordPress首页打开慢
  • 做网站需要icp电商网站建设怎么样
  • 切图做网站中国建筑出国招聘网
  • 深圳品牌网站制作公司哪家好找小程序开发公司
  • iis架设jsp网站光明网站开发
  • 长白山开发建设集团网站项目管理平台
  • 手机工信部网站备案查询上海高端网站定制开发
  • 谢岗东莞网站建设西安工程造价信息网
  • 网站快速排名服务传媒公司网站建设策划
  • asp access 做网站seo网课培训
  • 南充网站建设工作室网站建设公司在哪里
  • 24小时自助下单网站那个网站专门做幽默视频的
  • 怎样建立自己的网站卖东西东莞网站优化电话
  • 制作二维码网站免费苏州网站维护
  • 长沙网站推广工具互联网工作室暴利项目
  • 免费制作网站和网页昆明网站制作报价
  • wordpress能做企业网站吗网站推荐正能量
  • 全面启动门户网站建设小蝌蚪紧急自动跳转中
  • 百度提交网站收录入口百度网站电话是多少
  • 大唐网站首页如何开电商店铺
  • 公司网站制作工作室免费模版网站
  • 星沙网站建设公司wordpress内容页列表显示不出来
  • 如何攻克网站手机 pc网站模板
  • 网站建设开题报告ppt模板下载五八58同城找工作