C# 委托的理解

1、什么是委托

委托可以理解为持有一个或多个方法的对象。如果执行委托的话,委托会

执行它所"持有"的方法。委托可以避免程序中大量使用if-else语句,使

程序拥有更好的扩展性。

2、委托的本质

委托和类一样,是一种用户自定义的类型,但类表示的是数据和方法的集合,

而委托则持有一个或多个方法,以及一系列预定义的操作。

3、如何声明委托

delegate void MyDel(int x)

说明:delegate 作为委托关键字,没有方法主体

4、什么是多播委托?

可以把多个方法赋值给同一个委托,或者将多个方法绑定到同一个委托,

就是多播委托。

5、一个简单的委托demo:

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

using System.Threading.Tasks;

namespace SimpleDelegateDemo

{

class Program

{

static void Main(string[] args)

{

Class1 c2 = new Class1();

c2.MethodUseDelegate();     //调用方法

}

}

class Class1

{

public  delegate void SimpleDelegate();      //定义一个委托

SimpleDelegate delegateMethod = UseMethod;   //将方法传递给定义的另一个方法(委托)

public void MethodUseDelegate()

{

Class1 c1 = new Class1();

c1.delegateMethod();                    //将传递赋值的委托当做方法调用

//SimpleDelegate+=c1.UseMethod2 //绑定第二个方法

//SimpleDelegate-=c1.UseMethod2 //移除第二个方法

}

public static void UseMethod()

{

Console.WriteLine("一个简单委托列子");

Console.ReadKey();

}

public static void UseMethod2()

{

Console.WriteLine("一个简单委托列子2");

Console.ReadKey();

}

}

}

原文

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1. [C#语言基础]请简述拆箱和装箱。 答: 装箱操作: 值类型隐式转换为object类型或由此值类型实现的任何...
    胤醚貔貅阅读 4,903评论 1 29
  • 大家好,我是北京菜鸟在线的unity3d 高级讲师,范老师,这次我们接着上次的内容继续 (3-1) 我们还可以用...
    土豆_9724阅读 312评论 0 0
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,010评论 19 139
  • 目录本次给大家介绍的是我收集以及自己个人保存一些.NET面试题第二篇简介1.接口2.您在什么情况下会用到虚方法或抽...
    寒剑飘零阅读 1,995评论 0 10
  • 越放假越不想上班。又要到了开始上班的日子了,每次一到这时候,心里就感叹时间过得如此之快,怎么又要上班了。 就算心里...
    米栎儿阅读 138评论 0 0