找回密码
 立即注册
快捷导航

[C#] 委托 delegate

[复制链接]
茎肛互撸娃 2023-7-31 23:42:04 | 显示全部楼层

可以认为委托是持有一个或多个方法的对象。

当然,一般情况下你不会想要“执行”一个对象,但委托与典型的对象不同。可以执行委托,这时委托会执行它所“持有”的方法。

// 1、声明委托
delegate void MyDel(int val);

void fun1(int v1)
{
    Console.WriteLine("fun1 " + v1);
}

void fun2(int v2)
{
    Console.WriteLine("fun2 " + v2);
}

void Main()
{
    MyDel del;    // 2、声明委托变量

    del = new MyDel(fun1);
    del += fun2;   // 简写

    del(55);    // 3、调用委托
}

委托和类一样,是一种用户定义类型。但类表示的是数据和方法的集合,而委托则持有一个或多个方法,以及一系列预定义操作。

你可以把delegate看作一个包含有序方法列表的对象,这些方法具有相同的签名和返回类型

调用委托有两种方法,上面代码的第3步是以方法的形式调用,还有通过invoke方法调用委托;

dev?.Invoke(55);

匿名方法

delegate int MyDel(int v);
MyDel del = delegate(int x){ return x + 20; };
del(66);
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

温馨提示

关于 注册码 问题

      由于近期经常大量注册机器人注册发送大量广告,本站开启免费入群领取注册码注册网站账号,注册码在群公告上贴着...

关于 注册码 问题

      由于近期经常大量注册机器人注册发送大量广告,本站开启免费入群领取注册码注册网站账号,注册码在群公告上贴着...

Archiver|手机版|小黑屋|DLSite

GMT+8, 2024-11-23 00:40

Powered by Discuz! X3.5 and PHP8

快速回复 返回顶部 返回列表