在 C# 中,要删除委托可以使用 -=
运算符。下面是示例代码:
using System;
public class Program
{
public delegate void MyDelegate(string message); // 定义委托类型
static void Main()
{
MyDelegate myDelegate = new MyDelegate(PrintMessage); // 创建委托对象并指向 PrintMessage 方法
Console.WriteLine("调用委托之前的输出结果为:");
myDelegate("Hello World!"); // 通过委托调用 PrintMessage 方法
myDelegate -= PrintMessage; // 从委托列表中移除 PrintMessage 方法
Console.WriteLine("\n调用委托之后的输出结果为:");
try
{
myDelegate("Hello World!"); // 再次尝试通过委托调用 PrintMessage 方法(此时会引发异常)
}
catch (Exception ex)
{
Console.WriteLine($"异常信息:{ex.Message}");
}
}
static void PrintMessage(string message)
{
Console.WriteLine($"打印消息:{message}");
}
}