c#委托

委托概念

  1. 概念:Delgate(委托、代理):委托其实是一种程序特性,委托用来表示方法,委托其实就是方法的指针。

  2. 为什么要使用委托?

正常情况下:A对象中,创建了B对象,如果B对象中有一个公共行为C,那么A中是可以调用的。

class A
{
    B b = new B();

    void MyMethod()
    {
        b.c();
    };

    void NewMethod()
    {

    }
}

class B
{

}

如果B想调用A中的行为NewMethod是否可以?一般是不可以的,使用委托可以实现。

委托的基本使用

  1. 声明委托(定义方法的原型、方法的参数类型和个数)
// 【1】声明委托
public delegate void LectureDelgate();
  1. 根据委托编写具体方法
//【2】根据委托编写具体方法
static void ChangLecture1()
{
    Console.WriteLine("C#委托");
}

static void ChangLecture2()
{
    Console.WriteLine("C#MVC开发技术");
}
static void ChangLecture3()
{
    Console.WriteLine("C#项目实战开发");
}
  1. 创建委托变量(委托是引用类型)
// 【3】创建委托变量
LectureDelgate lecture1;
  1. 将委托变量和一个或多个符合委托定义的方法关联
// 【4】将委托变量和一个和多个符合委托定义的方法关联
lecture1 = ChangLecture1;

lecture1 += ChangLecture2;
lecture1 += ChangLecture3;

通过+=给委托添加关联方法,方法会按照关联的顺序依次调用。这就是委托的"多路委托"或"多播委托"。

通过-=给委托移除关联方法。

lecture1 -= ChangLecture3;
  1. 使用委托变量
lecture1();

lecture1.Invoke();// 委托特有的方法
posted @ 2022-03-12 16:37  Apostle浩  阅读(333)  评论(0编辑  收藏  举报