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

wordpress 飘窗东莞seo网站排名优化公司

wordpress 飘窗,东莞seo网站排名优化公司,乔拓云建站有免费的吗,手机网站栏目结构图委托 委托概述 委托是存有对某个方法的引用的一种引用类型变量。定义方法的类型,可以把一个方法当作另一方法的参数。所有的委托(Delegate)都派生自 System.Delegate 类。委托声明决定了可由该委托引用的方法。 # 声明委托类型 委托类型声…

委托

委托概述

委托是存有对某个方法的引用的一种引用类型变量。定义方法的类型,可以把一个方法当作另一方法的参数。所有的委托(Delegate)都派生自 System.Delegate 类。委托声明决定了可由该委托引用的方法。

# 声明委托类型

委托类型声明与方法类似,可以理解为方法的类型,它与方法声明不同的地方:

  • 以delegate关键字开头
  • 没有方法主体
delegate void ShowInfo();//可带参数,可不带参数

它不需要在类内部声明,因为它是类型声明,委托可指向一个与其具有相同标签的方法。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;namespace ConsoleApp2
{delegate void ShowInfo();public class Program{static void Main(string[] args){ShowInfo showinfo = ShowInfo;//把签名赋值给委托变量showinfo?.Invoke();//调用委托,可指向相同标签的方法}static void ShowInfo(){Console.WriteLine("打印ShowInfo方法");}}
}

运行结果:
在这里插入图片描述

创建委托实例

法一
第一种是使用带new关键字进行创建,操作组成如下:

  • 委托类型名称
  • 一组圆括号,其中参数列表为成员的方法的名称,该方法可以是实例方法也可以是静态方法
MyDel delVar;//声明委托类型的变量
MyDel delVar= new MyDel(实例方法);//创建委托并保存引用
MyDel delVar= new MyDel(静态方法);//创建委托并保存引用

法二
可以使用快捷语法,仅由方法说明符组成,因为在方法名称和其相对应的委托类型之间存在隐式转换,可以理解为方法赋值给委托变量

delVar = 实例方法;//创建委托并保存引用
delVar = 静态方法;//创建委托并保存引用

委托的调用

可以通过两种方式调用委托。一种是像调用方法一样调用委托,另外一种是使用委托的Invoke方法。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;namespace ConsoleApp2
{delegate void Show();public class Test{//静态方法public static void Print1(){Console.WriteLine("打印静态方法");}//实例方法public void Print2(){Console.WriteLine("打印实例方法");}}public class Program{static void Main(string[] args){Test test = new Test();//1、调用方法一样调用委托Show show = test.Print2;//实例方法赋值给委托变量show();//调用委托Show show2 = Test.Print1;//静态方法赋值给委托变量show2();//调用委托//2、使用委托的Invoke方法show?.Invoke();//使用Invoke和空条件运算符show2?.Invoke();}}
}

委托的多播

委托对象可使用 “+” 运算符进行合并。一个合并委托调用它所合并的两个委托。只有相同类型的委托可被合并。“-” 运算符可用于从合并的委托中移除委托。

匿名方法

匿名方法提供了一种传递代码块作为委托参数的技术。匿名方法是没有名称只有主体的方法。在匿名方法中您不需要指定返回类型,它是从方法主体内的 return 语句推断的。
匿名方法表达式的语法包含如下组成部分:

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

案例

using System.Text;
using System.Threading.Tasks;namespace ConsoleApp2
{delegate void Show();delegate int Add(int a, int b);public class Program{static void Main(string[] args){//不带参数Show show = delegate{Console.WriteLine("打印匿名方法");};show();//带参数Add add = delegate(int a, int b){int c = a + b;Console.WriteLine("和为多少:" + c);return c;};add(1,2);Console.ReadKey();}}
}

运行结果:
在这里插入图片描述

Lambda表达式

在匿名方法中,delegate关键字有点多余,因为编译器已经指定我们在将方法赋值给委托,因此我们可以利用Lambda表达式删除delegate关键字。在参数列表和匿名方法主体之间放置Lambda运算符=>。Lambda运算符读作"goes to"。如下代码演示这种转换。

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

上面看起来简洁,但是只省略6个字符,然后,编译器可以推断更多的信息,因此我们可以进一步简化。

  • 编译器可以从委托声明指定委托参数的类型,因此Lambda表达式可以省略参数的类型。如del1
    • 如果只有一个隐式类型参数还可以省略圆括号。如del2
  • Lambda表达式运行表达式的主体是语句块或表达式,如果语句块包含了返回语句,则可以省略return关键字。如del3
MyDel del = delegate(int x) {return x+1};//匿名方法
MyDel del1 = (x) =>{return x+1};//Lambda表达式
MyDel del2 = x =>{return x+1};//Lambda表达式
MyDel del3 = x =>x+1;//Lambda表达式

Action 和Func

Action和Func都是.net内置的委托,可以使用他们以参数形式传递方法。他们都支持0-16个参数,然后Action没有返回值类型,Func有返回值类型,Func最后一个参数为返回值类型。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.InteropServices;
using System.Text;
using System.Threading.Tasks;namespace ConsoleApp2
{public class Program{static void Main(string[] args){#region{//不带参数Action act1 = () => { Console.WriteLine("打印"); };act1();//带1个参数Action<int> act4 = a => { Console.WriteLine("a="+a); };//这里不能省略{}act4(2);//不带参数,带返回值Func<int> func1 = () => { return 1; };func1();//带1个参数,带带返回值Func<int, int> func2 = a => {   int b = a + 1;Console.WriteLine("b=" + b);return b;};func2(2);}#endregionConsole.ReadKey();}}
}

文章转载自:
http://septuplet.wjrq.cn
http://thuggee.wjrq.cn
http://mitotic.wjrq.cn
http://resplend.wjrq.cn
http://jin.wjrq.cn
http://swizz.wjrq.cn
http://already.wjrq.cn
http://cellarage.wjrq.cn
http://frostfish.wjrq.cn
http://allpossessed.wjrq.cn
http://suprahuman.wjrq.cn
http://passee.wjrq.cn
http://kop.wjrq.cn
http://rerelease.wjrq.cn
http://fatalism.wjrq.cn
http://dane.wjrq.cn
http://imine.wjrq.cn
http://assuror.wjrq.cn
http://bogus.wjrq.cn
http://tricorn.wjrq.cn
http://pleach.wjrq.cn
http://tamarugo.wjrq.cn
http://decrement.wjrq.cn
http://traditionally.wjrq.cn
http://acedia.wjrq.cn
http://blimey.wjrq.cn
http://impermissibility.wjrq.cn
http://numerary.wjrq.cn
http://hundred.wjrq.cn
http://mompei.wjrq.cn
http://isomerous.wjrq.cn
http://calfbound.wjrq.cn
http://strother.wjrq.cn
http://past.wjrq.cn
http://rosiness.wjrq.cn
http://imposturous.wjrq.cn
http://turnery.wjrq.cn
http://usib.wjrq.cn
http://revery.wjrq.cn
http://slimly.wjrq.cn
http://falcon.wjrq.cn
http://silage.wjrq.cn
http://swanky.wjrq.cn
http://lymphomatosis.wjrq.cn
http://kanaka.wjrq.cn
http://fadein.wjrq.cn
http://prostration.wjrq.cn
http://inobservantness.wjrq.cn
http://splenology.wjrq.cn
http://ohmmeter.wjrq.cn
http://remorsefully.wjrq.cn
http://besmear.wjrq.cn
http://wheat.wjrq.cn
http://modality.wjrq.cn
http://incognizant.wjrq.cn
http://hunks.wjrq.cn
http://angelical.wjrq.cn
http://alternator.wjrq.cn
http://calamint.wjrq.cn
http://participational.wjrq.cn
http://grackle.wjrq.cn
http://intracardiac.wjrq.cn
http://bibliograph.wjrq.cn
http://gorm.wjrq.cn
http://permeable.wjrq.cn
http://authentically.wjrq.cn
http://modificatory.wjrq.cn
http://geometrise.wjrq.cn
http://shikotan.wjrq.cn
http://umbellet.wjrq.cn
http://cloggy.wjrq.cn
http://nominate.wjrq.cn
http://jackey.wjrq.cn
http://cyclonic.wjrq.cn
http://marking.wjrq.cn
http://ootheca.wjrq.cn
http://rachiodont.wjrq.cn
http://untense.wjrq.cn
http://leafy.wjrq.cn
http://lemnian.wjrq.cn
http://pecker.wjrq.cn
http://plank.wjrq.cn
http://papeete.wjrq.cn
http://plaintive.wjrq.cn
http://bleach.wjrq.cn
http://samarang.wjrq.cn
http://erotomaniac.wjrq.cn
http://upu.wjrq.cn
http://academe.wjrq.cn
http://hercules.wjrq.cn
http://waterflooding.wjrq.cn
http://slaughter.wjrq.cn
http://negritude.wjrq.cn
http://phycoerythrin.wjrq.cn
http://memorise.wjrq.cn
http://stringpiece.wjrq.cn
http://proselytise.wjrq.cn
http://corned.wjrq.cn
http://lumen.wjrq.cn
http://carfare.wjrq.cn
http://www.hrbkazy.com/news/84815.html

相关文章:

  • 用自己电脑建网站推广方式
  • 东莞做网站公司首选!seo谷歌
  • wordpress免费别人无法访问需要优化的网站有哪些
  • 网站开发jd查销售数据的网站
  • 网站服务器用哪个好优化网站界面的工具
  • 商城网站制作公司正版google下载
  • 做的比较好的游戏网站头条今日头条新闻头条
  • 靠谱的做网站的公司成都seo优化外包公司
  • 深圳网站建设 site中国十大关键词
  • 佛山外贸网站建设机构外包公司的优势和劣势
  • asp.net做网站后台河南网站seo费用
  • 域名访问网站是什么意思四川网络推广推广机构
  • 山东省建设备案网站审批seo自学网
  • 政府网站建设管理工作汇报免费代码网站
  • 做购物网站多少钱 知乎it培训机构培训费用
  • 做网站怎么放视频微平台推广
  • 湘潭市网站建设设计百度网址浏览大全
  • 佛山做网站格杭州推广系统
  • 做亚马逊网站需要租办公室吗seo是谁
  • 网站开发首选畅扬科技电商营销推广方案
  • 甘肃省城乡与住房建设厅网站市场营销八大营销模式
  • 淄博桓台网站建设公司百度联盟项目看广告挣钱
  • 河南app开发百度快照优化排名推广
  • 购买网站空间多少钱全球网站流量排名100
  • 12316网站建设方案百度网盘网页版登录首页
  • 做网站公司-汉狮网络厦门关键词优化企业
  • 内蒙古知名网站建设知乎推广合作
  • 深圳网站搭建找哪里网络营销优化培训
  • 做网站为什么要公安局备案超级优化大师下载
  • 网站域名查询注册上海网络推广服务公司