代码:

using System;

namespace Delegate
{
public class Program
{
//声明委托
public delegate void DelegatePait(string Name); //声明方法
public static void A_Pait(string name)
{
Console.WriteLine("使用A打印的名称:{0}", name);
}
public static void B_Pait(string name)
{
Console.WriteLine("使用B打印的名称:{0}", name);
} //声明一个可以传 递 参数为方法 的方法
public static void Total_Pait(string name, DelegatePait pait)
{
pait(name);
} //调用
static void Main(string[] args)
{
//------- 普通委托的使用,使用自定义的Total委托方法 ------- //此次调用传递 A_Paint为参数的Total_Pait 方法
Total_Pait("张三", A_Pait); //此次调用传递 B_Pait为参数的 Total_Pait 方法
Total_Pait("李四", B_Pait); //------- 实例化委托,不需要使用自定义的委托方法 ------- //实例化委托,此时的d1,d2 代表的就是方法 A_Pait,B_Pait。
DelegatePait d1 = new DelegatePait(A_Pait);
DelegatePait d2 = new DelegatePait(B_Pait);
d1("张三");
d2("李四"); //------- 将多个方法绑定到委托,并依照绑定次序依次执行 ------- //可以将多个方法赋给同一个委托,或者叫将多个方法绑定到同一个委托。
//当调用这个委托的时候,将依次调用其所绑定的方法。
//委托对象可使用 "+=" 运算符进行合并。只有相同类型的委托可被合并。
//"-=" 运算符可用于从合并的委托中移除组件委托。
DelegatePait delegateshow;
DelegatePait d1 = new DelegatePait(A_Pait);
DelegatePait d2 = new DelegatePait(B_Pait);
delegateshow = d1; delegateshow += d2;//添加另一个委托对象d2,执行A_Pait,B_Pait方法
delegateshow("张三"); //执行过后,从委托列表中移除委托对象d2,只执行A_Pait方法
delegateshow -= d2;
delegateshow("张三"); Console.ReadKey();
}
}
}

  

C# - 委托的使用的更多相关文章

  1. HTML 事件(三) 事件流与事件委托

    本篇主要介绍HTML DOM中的事件流和事件委托. 其他事件文章 1. HTML 事件(一) 事件的介绍 2. HTML 事件(二) 事件的注册与注销 3. HTML 事件(三) 事件流与事件委托 4 ...

  2. C#基础篇 - 理解委托和事件

    1.委托 委托类似于C++中的函数指针(一个指向内存位置的指针).委托是C#中类型安全的,可以订阅一个或多个具有相同签名方法的函数指针.简单理解,委托是一种可以把函数当做参数传递的类型.很多情况下,某 ...

  3. [.NET] C# 知识回顾 - 委托 delegate (续)

    C# 知识回顾 - 委托 delegate (续) [博主]反骨仔 [原文]http://www.cnblogs.com/liqingwen/p/6046171.html 序 上篇<C# 知识回 ...

  4. [C#] C# 知识回顾 - 委托 delegate

    C# 知识回顾 - 委托 delegate [博主]反骨仔 [原文]http://www.cnblogs.com/liqingwen/p/6031892.html 目录 What's 委托 委托的属性 ...

  5. 9、委托、事件、Lambda

    开始 关于委托,肯定是要有问题的. 第一个问题,委托用来干什么? 看.net中的表述:在.net平台下,委托类型用来定义和相应应用程序中的回调.(回调?处理内存中两个实体双向通信的一种技术.)   第 ...

  6. iOS 委托与文本输入(内容根据iOS编程编写)

    文本框(UITextField) 本章节继续编辑 JXHypnoNerd .文件地址 . 首先我们继续编辑  JXHypnosisViewController.m 修改  loadView 方法,向  ...

  7. C#委托异步调用

    参考页面: http://www.yuanjiaocheng.net/webapi/mvc-consume-webapi-get.html http://www.yuanjiaocheng.net/w ...

  8. JavaScript事件代理和委托(Delegation)

    JavaScript事件代理 首先介绍一下JavaScript的事件代理.事件代理在JS世界中一个非常有用也很有趣的功能.当我们需要对很多元素添加事件的时候,可以通过将事件添加到它们的父节点而将事件委 ...

  9. .NET面试题系列[7] - 委托与事件

    委托和事件 委托在C#中具有无比重要的地位. C#中的委托可以说俯拾即是,从LINQ中的lambda表达式到(包括但不限于)winform,wpf中的各种事件都有着委托的身影.C#中如果没有了事件,那 ...

  10. .NET基础拾遗(4)委托、事件、反射与特性

    Index : (1)类型语法.内存管理和垃圾回收基础 (2)面向对象的实现和异常的处理基础 (3)字符串.集合与流 (4)委托.事件.反射与特性 (5)多线程开发基础 (6)ADO.NET与数据库开 ...

随机推荐

  1. Codeforces 484A - Bits 二进制找1

    这题可以根据l, r 在二进制下的长度进行分类. l  的长度小于 r 的时候,有两种可能,一种是r 在二进制下是 1* 这种样子,故答案取 r : 一种是取答案为  (1LL << (r ...

  2. double 型变量的输入输出标准格式

    c语言double型变量标准输入格式: scanf("%lf",num); 标准输出格式: printf("%f\n",num); 注:有过输出用%lf输出OJ ...

  3. Hadoop 2.x(YARN)安装配置LZO

    今天尝试在Hadoop 2.x(YARN)上安装和配置LZO,遇到了很多坑,网上的资料都是基于Hadoop 1.x的,基本没有对于Hadoop 2.x上应用LZO,我在这边记录整个安装配置过程 1. ...

  4. 再造 “手机QQ” 侧滑菜单(三)——视图联动

    代码示例:https://github.com/johnlui/SwiftSideslipLikeQQ 本 文中,我们将一起使用 UINavigationController 来管理主视图,并实现点击 ...

  5. mailcore -- Mail port

    以163为例的各个MailserverSSL协议port号和非SSL协议port号

  6. Flash键盘钢琴谱

    http://hi.baidu.com/%CC%EC%CA%B9%D2%FE%D2%ED/blog/item/e763d4eac3dcfb242cf53468.html <童话>Flash ...

  7. php内存分析

    1.一般来说,php倒不需要进行内存分析,但是遇到大循环时内存吃紧时就得要进行内存分析了,看看在哪里吃掉了内存. $m1 = memory_get_usage(); $m2 = memory_get_ ...

  8. C语言中Const与指针(转载)

    一.说明指针常量.指向常量的指针和指向常量的常量指针的含义.区别和共同点 首先,以上三种概念的共同点:都指的是指针 指针也是一种变量,它存储指定类型的变量的内存地址,如char* 来声明一个字符型指针 ...

  9. 演练2-1:创建MVC默认项目

    在VS2012中点击“文件 | 新项目”,在弹出对话框中选择“Visual C# | Web | ASP.NET MVC 4 Web应用程序”. 在弹出的模板对话框中选择“Internet应用程序”和 ...

  10. 轻量化ViewControllers,读文章做的总结

    推荐一个网站 http://objccn.io/ 我这两天才开始看 获益匪浅 看了第一篇文章 <更轻量的View Controllers>感觉写的不错 感觉作者 原文地址 http://o ...