(.net core 3.1)详解C#委托(三)–多播委托
啥叫多播委托?
任何一个委托都是多播委托,多播委托其实就是一个方法链,通过+=来实现增加执行的方法,-=来删除执行的方法
直接上代码
定义一个没有参数,没有返回值的委托
public delegate void StudentDele1();//定义一个委托,委托可以申明在类的内部,也可以申明在类的外部
定义四个方法
public void StudentDeleVoid1()
{
Console.WriteLine("StudentDeleVoid1");
}
public void StudentDeleVoid2()
{
Console.WriteLine("StudentDeleVoid2");
}
public void StudentDeleVoid3()
{
Console.WriteLine("StudentDeleVoid3");
}
public void StudentDeleVoid4()
{
Console.WriteLine("StudentDeleVoid4");
}
实例化委托,往委托里面增加方法,最后执行
{
StudentDele1 s1 = new StudentDele1(StudentDeleVoid1);
s1 += this.StudentDeleVoid2;
s1 += this.StudentDeleVoid3;
s1 += this.StudentDeleVoid4;
s1.Invoke();
}
最后执行得到结果
StudentDeleVoid1
StudentDeleVoid2
StudentDeleVoid3
StudentDeleVoid4
出了直接这样写方法名,还可以直接在后面+=()=>{" "} lambada表达式都可以
执行一次委托,可以同步执行多个方法,用+=来添加,用-=来移除方法
注意点:
增加的方法必须和委托的参数,返回类型一模一样,否则报错