在C#中,委托(Delegate)是一种类型,用于引用具有相同签名的方法。委托允许将方法作为参数传递、存储和调用,从而实现更灵活的代码设计。
// 委托定义
delegate void MyDelegate(string message);
// 定义委托类型
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
// 关联多个方法与委托
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 委托定义了一个接受字符串参数且无返回值的方法类型。通过实例化委托对象并将方法与委托进行关联,可以调用关联的方法。