• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录

卡利

  • 博客园
  • 联系
  • 订阅
  • 管理

公告

View Post

多播委托的特点

注册绑定多个具有相同签名的方法,在一个委托上,
Func有返回值的内置委托,有17个重载方法
Action无返回值的内置委托,有16个重载方法
事件与委托必须具有相同方法的签名
委托是一个不能被继承的密封类且可以将方法当做参数传递的引用类型

如下:

/// <summary>

/// 多播委托

/// </summary>

public class MultiDelegate

{

private delegate int DemoMultiDelegate(out int x);

private static int Show1(out int x)

{

x = 1;

Console.WriteLine("This is the first show method:"+x);

return x;

}

private static int Show2(out int x)

{

x = 2;

Console.WriteLine("This is the second show method:"+x);

return x;

}

private static int Show3(out int x)

{

x = 3;

Console.WriteLine("This is the third show method:"+x);

return x;

}

/// <summary>

/// 调用多播委托

/// </summary>

public void Show()

{

DemoMultiDelegate dmd = new DemoMultiDelegate(Show1);

dmd += new DemoMultiDelegate(Show2);

dmd += new DemoMultiDelegate(Show3);//检查结果

int x = 5;

int y= dmd(out x);

Console.WriteLine(y);

}

}

 

 

 

/*----------------------多播委托---------------------------------*/

MultiDelegate multiDelegate = new MultiDelegate();

multiDelegate.Show();

 

posted on 2019-08-08 20:17  卡利  阅读(117)  评论(0)    收藏  举报

刷新页面返回顶部
 
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3