匿名函数
匿名函数就是没有函数名的函数
匿名函数仅限委托绑定
委托当参数时,使用匿名函数
普通匿名函数绑定
委托对象 += delegate ([参数列表])
{
//方法体
}
xiaoming.buyHoueEventHandle += delegate(float m,float a)
{
Console.WriteLine("匿名中介在帮忙找房子哟");
return null;
};
Lambda表达式方式绑定
委托对象 += (参数列表) =>
{
//方法体
}
xiaoming.buyHoueEventHandle += (float m, float a) =>
{
Console.WriteLine("匿名拉姆达表达式");
return null;
};
回调
public void Marry(BuyHouseEventHandle buyHouse)
{
if(buyHouse == null)
{
Console.WriteLine(“No!!!!”);
}
else
{
buyHouse(1000000,200);
Console.WriteLine(”有房子啦,我好幸福!");
}
}
xiaomei.Marry(intermediary.BuyHouse);
事件
特殊的委托对象,开头大写。
[访问修饰符] event 委托类型 事件名称
public event BuyHouseEventHandle buyHouseEvent;
委托与事件的区别
委托的声明可以在方法里声明,事件只允许在方法外声明当一个变量使用
委托可以使用+=,-=,=赋值,事件只允许+=和-=;可以保证事件链的安全