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
}