C# 编程指南:委托的定义和使用

在C#中,委托(Delegate)是一种类型,用于引用具有相同签名的方法。委托允许将方法作为参数传递、存储和调用,从而实现更灵活的代码设计。

部分
1
委托的定义
委托定义了方法的类型,它包含了方法的返回类型、参数类型和方法名称。
委托可以看作是函数指针,它可以引用一个或多个具有相同签名的方法。
委托使用 delegate 关键字进行定义。
// 委托定义
delegate void MyDelegate(string message);
部分
2
委托的使用
声明委托类型后,可以实例化委托对象并将方法与委托进行关联。
委托对象可以像方法一样调用,它会执行关联的方法。
// 定义委托类型
delegate void MyDelegate(string message);

// 关联方法与委托
void Method1(string message)
{
    Console.WriteLine("Method1: " + message);
}

void Method2(string message)
{
    Console.WriteLine("Method2: " + message);
}

// 实例化委托对象并调用方法
MyDelegate myDelegate = new MyDelegate(Method1);
myDelegate("Hello, World!"); // 调用Method1

myDelegate = new MyDelegate(Method2);
myDelegate("Hello, World!"); // 调用Method2
部分
3
委托的多播(Multicast)
委托还支持多播,即将多个方法关联到一个委托对象上。
多播委托会依次调用关联的方法。
// 关联多个方法与委托
MyDelegate myDelegate = new MyDelegate(Method1);
myDelegate += new MyDelegate(Method2);
myDelegate += new MyDelegate(Method3);

// 调用多播委托,依次调用关联的方法
myDelegate("Hello, World!");

// 方法定义
void Method3(string message)
{
    Console.WriteLine("Method3: " + message);
}

在以上示例中,MyDelegate 委托定义了一个接受字符串参数且无返回值的方法类型。通过实例化委托对象并将方法与委托进行关联,可以调用关联的方法。

    目录

  • 1.
    委托的定义
  • 2.
    委托的使用
  • 3.
    委托的多播(Multicast)