C# 基础 - 委托、事件

时间:2022-07-09 04:25:57

1. 委托

sequenceDiagram
方法->>委托: 返回值和入参一样
委托->>方法: 调用委托就是调用绑定的方法
delegate int NumTest(int num);
int Add(int num)
{
return num + 10;
} void Test()
{
NumTest nt = new NumTest(Add);
Console.Write(nt(10)); //20
}

2. 事件

sequenceDiagram
方法->>委托: 返回值和入参一样
委托->>方法: 调用委托就是调用绑定的方法
事件->>委托: 指定委托类型,并 += 一个或多个委托
事件->>方法: 调用事件就是调用事件绑定的委托指定的方法
delegate void NumTest();
event NumTest EventNum; void MethodA()
{
Console.WriteLine("Do MethodA");
} int MethodB(int num)
{
Console.WriteLine("Do MethodB");
} void Test()
{
EventNum += new NumTest(MethodA);
EventNum += new NumTest(MethodB);
EventNum(); //Do MethodA\r Do MethodB
}