C# 中的委托(Delegate)是一种类型,用于表示对方法的引用。它可以用于将方法作为参数传递给其他方法,或者用于定义和调用回调函数。委托是一种类型安全的函数指针。

以下是一些基本的委托概念和用法:

1. 定义委托:
// 定义一个委托
public delegate void MyDelegate(string message);

// 委托的方法签名需要与被引用的方法相匹配

2. 实例化委托:
// 实例化委托并与方法关联
MyDelegate myDelegate = new MyDelegate(MyMethod);

3. 定义委托引用的方法:
// 被委托引用的方法
static void MyMethod(string message)
{
    Console.WriteLine("MyMethod: " + message);
}

4. 调用委托:
// 通过委托调用方法
myDelegate("Hello, Delegate!");

5. 多播委托(Multicast Delegate):
// 可以将多个方法添加到同一个委托上,形成多播委托
myDelegate += AnotherMethod;
myDelegate("Hello, Multicast Delegate!");

完整示例:
using System;

public delegate void MyDelegate(string message);

class Program
{
    static void Main()
    {
        // 实例化委托并与方法关联
        MyDelegate myDelegate = new MyDelegate(MyMethod);

        // 调用委托
        myDelegate("Hello, Delegate!");

        // 多播委托
        myDelegate += AnotherMethod;
        myDelegate("Hello, Multicast Delegate!");
    }

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

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

这是一个简单的委托示例,你可以根据具体需求定义不同类型的委托,以及使用 Lambda 表达式等功能来简化代码。


转载请注明出处:http://www.zyzy.cn/article/detail/14772/C#