【C#】委托与事件

时间:2023-03-09 07:33:08
【C#】委托与事件

一、委托

1.概念:用来存放 方法 指针(地址)的容器。

为什么要有委托?当有的业务代码总体已经实现,但有部分需要调用者来决定,就可以使用委托的方式,让调用者把一段代码以 方法的方式 传入。

【例子】:

List<Person> list2 = new List<Person>();

list2.Add(new Person());

list2.Add(new Person());

list2.Add(new Person());

//平时,我们每次需要遍历集合的时候都要手写 循环代码

foreach (Person per in list2)

{

    Console.WriteLine(per.SayHi());

}

//使用 集合的 ForEach方法,它会帮我们 遍历 list2里的元素,但是它不知道每次遍历要对元素做什么事情,需要程序员传入代码(执行代码只能放在方法里,所以这里需要传入一个方法)

list2.ForEach(TakeSayHi);

//准备给ForEach的方法

public void TakeSayHi(Person p)

{

      Console.WriteLine(p.SayHi());

}

【问题】:方法是如何传递的呢?

通过 委托类!

2.语法:

2.1简单实用

2.1.1如何定义委托

public delegate void DGSayHi(Person p);

2.1.2如何创建委托对象

//定义方法(其签名必须与 要添加到的委托 的签名一致)

public void TakeSayHi(Person p)

{

    Console.WriteLine(p.SayHi());

}
//创建委托对象(构造函数中传入方法)

DGSayHi dgSayhi = new DGSayHi(TakeSayHi);

//2.1.3如何调用委托

//1.创建委托对象,传入 与委托具有相同签名的方法

DGSayHi dgSayhi = new DGSayHi(TakeSayHi);

//2.调用委托里的方法,并为委托里的方法 传入参数

dgSayhi.Invoke(new Person());

2.2将方法当参数(本质是把委托当参数,委托里存放要传递的方法)

//定义需要传递委托参数的方法:

public void TestDGSayHI(DGSayHi dgSayHI)

{

    Person p = new Person();

    dgSayHI.Invoke(p);//通过委托调用随委托传进来的方法

}
//测试:

DGSayHi dg = new DGSayHi(TakeSayHi);

//把方法存在委托中 ,然后 传递给 调用方法

TestDGSayHI(dg);

2.3将方法当返回值(本质是把委托当返回值,委托里存放要返回的方法)

public DGSayHi CreateDele(string type) {

    switch (type)

    {

        default:

            return new DGSayHi(TakeSayHi);

    }

}

调用:

Person p = new Person();

//返回一个 包含了 方法的委托对象

DGSayHi dg = CreateDele("p");

//通过委托 调用委托里的方法

dg.Invoke(p);

2.4向委托中存放多个方法(多播委托)

DGSayHi dgSay = new DGSayHi(TakeSayHi);

//向委托中 追加 方法(也存在委托中)

dgSay += new DGSayHi(TakeSayHiInJp);

dgSay += new DGSayHi(TakeSayHiInKr);

//调用的时候 会 按照方法添加的顺序 依次执行方法 并为 每个方法都传入相同 的 参数

dgSay.Invoke(new Person());

2.5移除委托中的方法

DGSayHi dgSay = new DGSayHi(TakeSayHi);

//向委托中 追加 方法(也存在委托中)

dgSay += new DGSayHi(TakeSayHiInJp);

dgSay += new DGSayHi(TakeSayHiInKr);

//移除委托中的 一个方法

dgSay -= new DGSayHi(TakeSayHiInJp);

//调用委托中 剩下的两个方法,并传入 相同参数

dgSay.Invoke(new Person());

3.语法糖

为了简化语法,.Net编译器会认识一些简单的语法,并在编译的时候转成正常语法代码。因为是在编译的时候替换,所以不会影响运行的效率。

//3.1创建委托 和 执行委托里的方法的  语法糖

DGSayHi dgSayHi2 = TakeSayHi;//new DGSayHi(TakeSayHi);

dgSayHi2(new Person());//dgSayHi2.Invoke(new Person())

//3.2直接把方法 作为参数 传入

TestDGSayHI(TakeSayHi);// TestDGSayHI(new DGSayHi(this.TakeSayHi));

//3.3+= / -=

DGSayHi dgSay2 = TakeSayHi;

dgSay2 += TakeSayHiInJp;

dgSay2 += TakeSayHiInKr;

dgSay2 -= TakeSayHiInJp;

dgSay2(new Person());

编译后:

DGSayHi dgSay2 = new DGSayHi(this.TakeSayHi);

dgSay2 = (DGSayHi) Delegate.Combine(dgSay2, new DGSayHi(this.TakeSayHiInJp));

dgSay2 = (DGSayHi) Delegate.Combine(dgSay2, new DGSayHi(this.TakeSayHiInKr));

dgSay = (DGSayHi) Delegate.Remove(dgSay, new DGSayHi(this.TakeSayHiInJp));

dgSay2.Invoke(new Person());

注意:方法中不能定义类

private void btnDelSelf_Click(object sender, EventArgs e)

{

//class A{}

//delegate void A();//而 委托 就是在一个 类,所以也不能在方法中定义委托

}

4.委托原理

4.1定义委托:

public delegate void DGSayHi(Person p);

编译后:会生成一个继承于 MulticastDelegate 的类!

.class public auto ansi sealed DGSayHi

    extends [mscorlib]System.MulticastDelegate

{

.method public hidebysig newslot virtual instance void Invoke(class 委托事件.Person p) runtime managed

......

}

编译后我们看到了一个继承关系: 自定义委托类 -> MulticastDelegate ->Delegate

4.2委托类 Delegate

DGSayHi dg = new DGSayHi(TestTar);//此处先看成 是 new 了一个 Delegate

dg(new Person());

aaarticlea/png;base64,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" alt="" />

4.2多播委托 MulticastDelegate

aaarticlea/png;base64,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" alt="" />

5.匿名方法

针对于某些只调用一次的方法,使用匿名方法。

List<Person> list2 = new List<Person>();

list2.Add(new Person());

list2.Add(new Person());

list2.Add(new Person());

//匿名方法

list2.ForEach(delegate(Person p)

{

    Console.WriteLine(p.SayHi());

});

二、事件 Event

为什么要有事件?

如果所有地方都是用委托,那么有可能发生这种情况:一个委托对象,已经注册了若干方法,但某个程序员不知道,直接将委托 设置为 null,清空了所有的方法。

而事件 可以 为我们限制在外部访问某个类里的 委托对象 的方式,只能在外部通过 +=/-=操作委托对象。

1.语法

//1.先定义委托 类

public delegate void DGTripleClick();

//2.定义事件(在某个类中需要使用委托时,加个event关键字)

public event DGTripleClick TripleClickEvent;

//3.使用事件

TripleClickEvent += Mehtod1;

TripleClickEvent -= Mehtod1;

TripleClickEvent=null;//报错,事件委托在外部只能在 +=/-=左边

TripleClickEvent();//报错,事件委托在外部不能直接调用执行

2.原理

C# 里的事件 其实是一套类似于 属性的 语法机制

用来 限制 在某个类的外面 访问 类里面的 委托的 方式。

事件会在编译后 自动的生成一个私有的委托变量,同时生成 addon 和 removeon 两个公有的 两个方法用来 +=/-= 操作 这个私有委托变量。

aaarticlea/png;base64,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" alt="" />