严格来讲,C# 中委托和事件的区别,这个问题本身就没有表达清楚。委托是一种引用类型,用于指向具有特定参数列表和返回类型的方法。
可使用类似于定义方法签名的语法来定义委托类型。 只需向定义方法签名的前面添加 delegate 关键字即可。
// 定义委托类型,类型名为 Comparison
public delegate Int32 Comparison<in T>(T left, T right);
当你使用 delegate 关键字时,编译器会生成一个 Comparison 类,该类继承自 MulticastDelegate 类。值得注意的是,MulticastDelegate 类是一个特殊的类。 编译器和其他工具可以从此类派生,但我们不能定义一个类显式派生自 MulticastDelegate 类。
事件的完整声明方式:
// 定义委托类型,类型名为 Comparison
public delegate Int32 Comparison<in T>(T left, T right);
事件的简略声明方式: