1.使用
delegate可以理解为对方法的引用,前提是delegate和方法的方法签名一样。例子如下:
通过以上例子可以发现,代理可以让方法作为其他方法的参数调用。需要注意的是,被调用的方法需要和代理的方法签名一样。更多可以见官方文档:https://docs.microsoft.com/zh-cn/previous-versions/ms173171%28v%3dvs.120%29
2.其他
如果一个代理中,参数并不需要用到时,使用delegate省略掉参数的编写。如下:
Task dating = new Task(delegate {
Console.WriteLine("新建Task,去和美女约会了!");
});
3.组播
可以使用+=来连接一系列的方法构成方法链,也叫做''多播"或者"组播"。
比如早上起床后,要刷牙,要洗脸可以这样子定义
delegate void GetUp(String str);
public static void BrushTooth(String desc)
{
Console.WriteLine("早晨起来,刷刷牙,身体好");
}
public static void WashFace(String desc)
{
Console.WriteLine("刷完牙后,洗洗脸,精神棒!");
}
//测试代码
GetUp p = new GetUp(BrushTooth);
p += WashFace;
网友评论