1.C#中的delegate是什么,有什么用?

delegate是委托,类似于在C语言中的函数指针,类A的方法m给类B使用,在类B中可以调用方法m.这里委托是吧方法作为参数传递。
1.1delegate和函数指针的区别?
函数指针只能指向静态的函数,但是delegate修饰的函数既可以引用静态函数,有可以引用非静态函数。
例子一:
public class DelegateTest
{
     // 声明delegate对象  
     public delegate void CompareDelegate(int a,int b);
     // 欲传递的方法,它与CompareDelegate具有相同的参数和返回值类型  
     public static void Compare(int a,int b)
     {
         Console.WriteLine((a>b).ToString());
     }
 
     public static void Main()
     {
         // 创建delegate对象  
         CompareDelegate cd = new CompareDelegate(DelegateTest.Compare);
         // 调用delegate  
         cd(1,2);
     }

例子二:

delegate void UpdateLabel(bool bstus);

private void UpdateLabelColor(bool bstus)
{
    if (this.InvokeRequired)
            {

this.Invoke(new UpdateLabel(UpdateLabelColor), new object[] { bstus });
            }
            else
            {
                label.BackColor = (bool)bstus ? Color.Green : Color.Red;
            }
                
        
}

//调用 
int main()
{
    bool bValue;
    UpdateLabelColor(bValue);
    return 0;
}

C#中的delegate是什么?相关推荐

  1. ios中关于delegate(委托)的使用心得

    ios中关于delegate(委托)的使用心得 分类: iOS开发2012-05-15 10:54 34793人阅读 评论(9) 收藏 举报 iosuiviewtimerinterfaceprinti ...

  2. (转)C#中的委托(Delegate)和事件(Event)

    转自:http://blog.chinaunix.net/uid-576762-id-2733751.html 把C#中的委托(Delegate)和事件(Event)放到现在讲是有目的的:给下次写的设 ...

  3. C#中的delegate和event (转)

    C#中的delegate和event 在基于Windows平台的程序设计中,事件(event)是一个很重要的概念.因为在几乎所有的Windows应用程序中,都会涉及大量的异步调用,比如响应点击按钮.处 ...

  4. Unity中的Delegate

    详解Unity中的委托与事件 阅读目录 0x00 前言 0x01 从观察者模式说起 0x02 向Unity3D中的SendMessage和BroadcastMessage说拜拜 0x03 认识回调函数 ...

  5. C#中的delegate

    一:C#中的delegate和event 在基于Windows平台的程序设计中,事件(event)是一个很重要的概念.因为在几乎所有的Windows应用程序中,都会涉及大量的异步调用,比如响应点击按钮 ...

  6. 谈C#中的Delegate

    引言 Delegate是Dotnet1.0的时候已经存在的特性了,但由于在实际工作中一直没有机会使用Delegate这个特性,所以一直没有对它作整理.这两天,我再度翻阅了一些关于Delegate的资料 ...

  7. QTableView中使用Delegate方式来实现对特定列的文本进行换行

    问题:由于表格的一个列中,有个别文本过长,默认情况下,QTableView不支持对某列的文本换行,所以需要通过Delegate方式来实现这样的效果 头文件的Delegate 1 #pragma onc ...

  8. 转:终于会用c#中的delegate(委托)和event(事件)了

    第一个例子: public class DelegateTest {// 声明delegate对象 public delegate void CompareDelegate(int a,int b); ...

  9. C#中的delegate的 Invoke 、BeginInvoke的区别

    事情是这样的,我看到了以下的一段代码,才引发了对这个问题的思考.代码如下: 1 using UnityEngine; 2 using UnityEditor; 3 4 public class Cus ...

最新文章

  1. 项目经理如何参与任务管理
  2. 玩转oracle 11g(43):oracle导出空表
  3. 怎样下载python模块sublime text3中_python安装环境配置、python模块添加、sublime text编辑器配置...
  4. java 常用 函数_java在线报表中有哪些常用函数
  5. [svc]容器网络学习索引及网络监控
  6. 统计学(检验、分布)的 python(numpy/pandas/scipy) 实现
  7. Atitit ioc 之道 attilax著 第2章 装配Bean 33 2.1 Spring配置的可选方案 34 2.2 自动化装配bean 35 2.2.1 创建可被发现的bean 35 2.
  8. JSAPI微信公众号apiV3文档支付
  9. Octotree在GitHub中出错
  10. 运放的开环增益和相移
  11. adb工具的安装方法
  12. H.265网页播放器EasyPlayer获取视频流正常,但是播放出现黑屏是什么原因?
  13. UltraISO 制作U盘启动盘
  14. [读后感] 书名:追风筝的人
  15. C#textBox控件保留上次输入
  16. Java 官网下载+安装(Linux)
  17. AMBA总线协议(包含AHB与APB)
  18. 微信自动发朋友圈源码
  19. 微服务架构的好处和弊端
  20. 【Get深一度】完备正交函数集合——信号分析

热门文章

  1. 骅威机器人_骅威文化(002502)_财经频道_腾讯网
  2. 基于win注册表注册程序协议,你也能从网址调用程序带参。
  3. HTML5期末考核大作业,电影网站——橙色国外电影 web期末作业设计网页
  4. [山东科技大学OJ]1060 Problem G: 求最大值和最小值
  5. js-ajax/axios的拦截器
  6. 组图:山村妇女生产过程
  7. 安装淘宝镜像或者使用cnpm详解
  8. 为什么你看了那么多干货,却依然没有提升?
  9. 锐捷交换机的ospf教程
  10. win10如何提高电脑画质_教你win10系统提高图片分辨率的修复教程