1.什么是委托?(方法作另一个方法的参数)
delegate void MyDel(int value);    //声明委托类型
和类一样,委托是用户自定义的类型,但是类是数据和方法的集合,而委托是持有一个或多个方法。
delegate可以看做是一个包含有序方法列表的对象,这些方法具有相同的签名和返回类型。
委托保存的方法可以来自任何类或结构
调用列表中的方法可以是实例方法也可以是静态方法
调用委托时,会执行调用列表中的所有方法

2.声明委托类型
delegate    void      MyDel        (int value);委托的是无返回值,且单一int参数的方法
关键字    返回类型    委托类签名      签名

3.创建委托对象
MyDel       delVar;
委托类型     变量
delVar = new MyDel(myInstObj.MyM1);    或    delVar = myInstObj.MyM1;
delVar = new MyDel(sClass.otherM2);    或    delVar = sClass.otherM2;

4.组合委托
MyDel a = myInstObj.myM1;
MyDel b = SClass.OtherM2;
MyDel c = a + b;

5.为委托添加方法+=  同理删除方法: -=
MyDel delVar = inst.myM1;    //创建并初始化
delVar += Scl.m3;
delVar += X.Act;

6.调用委托(从底部函数开始执行)
MyDel delVar = inst.MyM1;
delVar(55);

7.调用带返回值的委托
最后一个方法的返回值就是委托调用返回的值,其他方法的返回值会被忽略

8.调用带引用参数的委托
参数值会根据调用列表中的一个或多个方法的返回值而改变

9.匿名方法
在初始化委托时内联声明的方法
delegate   (Parameters)    {ImplementationCode}
关键字      参数列表        语句块
delegate int OtherDel(int Inparam);
static void Main()
{
    OtherDel del = delegate(int x)
    {
        return x + 20;
    };
}

C#中的委托是什么的更多相关文章

  1. C# 中的委托和事件

    觉得这篇文章写的非常好,大神之作,由简入繁,对我这种初学者来说帮忙很大,特此留存下. 摘自:http://tracefact.net/CSharp-Programming/Delegates-and- ...

  2. Objective-C中的委托(代理)模式

    我个人更喜欢把委托(Delegate)模式称为代理(Proxy)模式.还是那句话,第一次接触代理模式是在Java中接触的,在Java中实现代理模式和接口是少不了的.当时学习Spring的时候用到了接口 ...

  3. C# 中的委托和事件(转)

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

  4. C# 中的委托和事件(转载)

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

  5. 【转】C# 中的委托和事件

    阅读目录 C# 中的委托和事件 引言 将方法作为方法的参数 将方法绑定到委托 事件的由来 事件和委托的编译代码 委托.事件与Observer设计模式 .Net Framework中的委托与事件 总结 ...

  6. 第3章 C#中的委托和事件

    .NET框架中的委托和事件 using System; using System.Collections.Generic; using System.Linq; using System.Text; ...

  7. 分分钟用上C#中的委托和事件之窗体篇

    上次以鸿门宴的例子写了一篇名为<分分钟用上C#中的委托和事件>的博文,旨在帮助C#初学者迈过委托和事件这道坎,能够用最快的速度掌握如何使用它们.如果觉得意犹未尽,或者仍然不知如何在实际应用 ...

  8. 《C#高级编程》学习笔记------C#中的委托和事件(续)

    本文转载自张子阳 目录 为什么要使用事件而不是委托变量? 为什么委托定义的返回值通常都为void? 如何让事件只允许一个客户订阅?(事件访问器) 获得多个返回值与异常处理 委托中订阅者方法超时的处理 ...

  9. c#中的委托和事件(转)

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

  10. C#中的委托和事件(续)

    转自张子阳的博客http://www.tracefact.net/CSharp-Programming/Delegates-and-Events-Advanced.aspx 引言 如果你看过了 C#中 ...

随机推荐

  1. Python--day43--mysql自增列之起始值和步长

    对于自增: 1,查看字段,类型以及是否可以为空,默认值:desc t2; 2,查看表t2是怎么创建的show create table t2; (竖着看)查看表t2是怎么创建的show create ...

  2. PHP会员找回密码功能的简单实现

    文章来自:博客 http://www.jb51.net/article/91944.htm 设置思路 1.用户注册时需要提供一个E-MAIL邮箱,目的就是用该邮箱找回密码. 2.当用户忘记密码或用户名 ...

  3. H3C 域名

  4. Linux 内核kobject非 缺省属性

    在许多情况中, kobject 类型的 default_attrs 成员描述所有的 kobject 会拥有的属性. 但是那不是一个设计中的限制; 属性随意可以添加到和删除自 kojects. 如果你想 ...

  5. CF1209

    CF1209 A B 水题不管 C 因为要求最终整个序列是要单调的 所以我们就考虑枚举断点$x$ 之后把$<x$的数放到第一个集合 把$> x$的数放到第二个集合 至于$=x$的数 他能放 ...

  6. k8s故障总结

    1.run pod的时候提示"Back-off pulling image \"registry.access.redhat.com/rhel7/pod-infrastructur ...

  7. Channel 9视频整理【6】

    GiGi Huang https://channel9.msdn.com/Niners/GiGiHuang

  8. LeetCode111_求二叉树最小深度(二叉树问题)

    题目: Given a binary tree, find its minimum depth.The minimum depth is the number of nodes along the s ...

  9. 20191017-8 alpha week 2/2 Scrum立会报告+燃尽图 07

    此作业要求参见https://edu.cnblogs.com/campus/nenu/2019fall/homework/9804 小组名称:“组长”组 组长:杨天宇 组员:魏新,罗杨美慧,王歆瑶,徐 ...

  10. java之set接口

    1.set集合不能存储重复的元素, 2.HashSet集合不能保证的迭代顺序与元素存储顺序相同. 3.HashSet集合,采用哈希表结构存储数据,保证元素唯一性的方式依赖于:hashCode()与eq ...