`
fdyang
  • 浏览: 79686 次
  • 性别: Icon_minigender_1
  • 来自: 苏州
社区版块
存档分类
最新评论

(C#)委托(delegate)

阅读更多

(C#)委托(delegate)
委托是包含具有相同签名和返回值类型的有序方法列表的对象。
- 方法的列表称为调用列表 (invocation list).
- 当委托被调用时, 它依次调用列表中的每一个方法.

 

声明委托类型
delegate void MyDel( int x ) ;

 

创建委托对象
首先变量声明: MyDel delVar;


2种方式创建委托对象.
1)使用带 new 运算符的对象创建表达式.
   delVar = new MyDel( myInstObj.MyM1 ) ;    //创建委托并保存引用 , 实例方法
   或 delVar = new MyDel( SClass.OtherM2 ) ; //创建委托并保存引用 , 静态方法
2) 使用快捷语法. (与上面代码等价)
   delVar = myInstObj.MyM1;
   或 delVar = SClass.OtherM2;

 

赋值委托
由于委托是引用类型,我们可以通过给它赋值来改变包含在委托变量中的引用。旧的委托对象会被垃圾回收器(GC)回收.
MyDel delVar;
delVar = myInstObj.MyM1;
...
delVar = SClass.OtherM2;

 

组合委托
MyDel delA = myInstObj.MyM1;
MyDel delB = SClass.OtherM2;
MyDel delC = delA + delB;

 

为委托增加/移除方法
MyDel deVar = inst.MyM1;  //创建并初始化
delVar += SCl.M3;         //增加方法
delVar += X.Act;          //增加方法


使用+=运算符增加方法.
使用-=运算符移除方法.

调用带返回值的委托.
(略)
调用带引用参数的委托.
(略)

 

分享到:
评论

相关推荐

    .Net C#委托 delegate

    本ppt结合场景和实例对C#委托(delegate)的基础进行了讲解:包括了委托的定义,基本语法,同步异步调用,匿名委托的使用,泛型委托,lamda表达式,剖析了委托协变、委托逆变。对委托在.net 3.5框架中的身影进行了分析...

    C#委托delegate实例解析

    主要介绍了C#委托delegate实例解析,对C#的委托做了较为深入的剖析,很适合初学者学习,需要的朋友可以参考下

    delegate委托

    从序言中,大家应该对委托和事件的重要性有点了解了吧,虽然说我们现在还是能模糊,但是从我的大白话系列中,我会把这些概念说的通俗易懂的。首先,我们还是先说说委托吧,从字面上理解,只要是中国人应该都知道这个...

    C#使用委托(delegate)实现在两个form之间传递数据的方法

    本文实例讲述了C#使用委托(delegate)实现在两个form之间传递数据的方法。分享给大家供大家参考。具体分析如下: 关于Delegate【代理、委托】是C#中一个非常重要的概念,向前可以推演到C++的指针,向后可以延续到匿名...

    c#中关于委托delegate的经典的实例

    c#中关于委托delegate的经典的实例,可以使我们清楚的了解delegate的使用方法及含义。

    VB.Net-C#多线程Thread-代理委托delegate编程

    最近收集的VB.Net-C#多线程Thread-代理委托delegate编程。文章列表: c#.net多线程同步.txt C#WebBrowser页面与WinForm交互技巧一.txt C#多线程编程-多细全.txt C#多线程编程简单实例.txt C#多线程窗体控件安全访问....

    委托delegate invoke的简单源代码,适合委托初学者!

    委托delegate invoke的简单源代码,适合委托初学者!

    CSharp_Delegate C#委托

    CSharp_Delegate C#委托 本人博客中的示例代码

    01.C# 知识回顾 - 委托 delegate.pdf

    01.C# 知识回顾 - 委托 delegate.pdf 01.C# 知识回顾 - 委托 delegate.pdf

    c#多线程利用委托更新控件内容

    该文档给出了在不同线程间实时更新控件textbox数据的代码,利用了委托(delegate)

    02.C# 知识回顾 - 委托 delegate续.pdf

    02.C# 知识回顾 - 委托 delegate续.pdf02.C# 知识回顾 - 委托 delegate续.pdf

    C++中实现委托(delegate)

    网上有很多关于C++ delegate机制的文章,但都讲的是函数指针的内容,上周就C++中实现C#的delegate机制的问题研究了好几天,查看了很多相关资料,才解决了问题,现将我写的C++ delegate测试程序贴出来,希望能帮到有...

    C#由浅至深深度解析Delegate委托与Event事件

    委托 和 事件在 .Net Framework中的应用非常广泛,然而,较好地理解委托和事件对很多接触C#时间不长的人来说并不容易。它们就像是一道槛儿,过了这个槛的人,觉得真是太容易了,而没有过去的人每次见到委托和事件就...

    C#委托代码样例DelegateDemo

    博客《CSharp中委托与事件技术详解:一什么是委托》 https://qlygmwcx.blog.csdn.net/article/details/113928713

    .Net的异步机制(委托Delegate)

    使用.Net 的委托机制来为我们的程序提供异步操作行为. ...public delegate string AsyncEventHandler(string name); 2步,使用委托提供的BeginInvoke, EndInvoke 方法(具体使用下一篇文章详细介绍)来提供异步的调用...

    C#中的事件和委托(Delegate,Event)

    C#中的事件和委托(Delegate,Event)

    浅析C# 委托(Delegate)

    C# 中的委托(Delegate)类似于 C 或 C++ 中函数的指针。委托(Delegate) 是存有对某个方法的引用的一种引用类型变量。引用可在运行时被改变。 委托(Delegate)特别用于实现事件和回调方法。所有的委托(Delegate...

    C#跨窗体(Winform)调用控件(委托回调)

    委托回调

Global site tag (gtag.js) - Google Analytics