前言:

根据百度百科字面意思是:把事情托付给别人或别的机构(办理/处理), 我们就按汉字意思来理解;

再罗嗦一点通俗一点就是:当某人发生什么事情后把处理这个事情的工作托付给别人或别的机构(办理/处理);

举个现实的案例"李天1案例":当杨女士受到侵害后,委托律师对李天1进行控告,委托医生进行身体检查;
用委托实现就是如下:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text; namespace 委托
{
/*
c#委托理解---我个人对委托的理解
根据百度百科字面意思是:把事情托付给别人或别的机构(办理/处理)
再罗嗦一点通俗一点就是:当某人发生什么事情后把处理这个事情的工作托付给别人或别的机构(办理/处理);
现实的案例李天1案例:当杨女士受到侵害后,委托律师对李天1进行控告,委托医生进行身体检查;
用程序实现就是如下
*/
class Program
{
static void Main(string[] args)
{
MissYang missYang = new MissYang();
missYang.WasHurted = true; //伤害杨小姐
/*传统实现方式.....................................................................*/
////律师起诉李天1
//Lawyer lawyer = new Lawyer();
//lawyer.Sue();
//医生对杨女士检查身体
//Doctor doctor = new Doctor();
//doctor.Check(); /*使用委托实现方式..................................................................*/
//1:杨小姐委托律师起诉,委托医生检查身体,那么杨小姐这个类中就应该有个委托的功能;即一个委托的实例,对应代码 @A
//那么我们就要先定义一个委托类型(不存在任意一个类中),MissYangDelegate,对应代码 @B
//2:杨小姐委托律师要起诉李天1,也即是将律师起诉的方法传到杨小姐的委托实例中. 意味着这个律师起诉方法就是杨小姐委托的事情; 对应代码 @C
//3:杨小姐委托医生检查身体, 也即是将医生检查身体的方法传到杨小姐的委托实例中.意味着这个医生检查身体方法就是杨小姐委托的事情;对应代码 @D
missYang.missYangDelegate = new MissYangDelegate(new Lawyer().Sue);// @C
missYang.missYangDelegate();//启动委托,这里启动后会去执行 new Lawyer().Sue()方法
missYang.missYangDelegate = new MissYangDelegate(new Doctor().Check);// @D
missYang.missYangDelegate();//启动委托,这里启动后会去执行 new Doctor().Check()方法 Console.Read();
}
} /// <summary>
/// 杨小姐类
/// </summary>
class MissYang
{
/// <summary>
/// 是否被被伤害
/// </summary>
public bool WasHurted = false;
/// <summary>
/// '杨小姐委托'的实例
/// </summary>
public MissYangDelegate missYangDelegate;//@A
} /// <summary>
/// 律师类
/// </summary>
class Lawyer
{
public void Sue()
{
Console.WriteLine("律师起诉李天1......");
}
}
/// <summary>
/// 医生类
/// </summary>
class Doctor
{
public void Check()
{
Console.WriteLine("医生给杨小姐检查身体......");
}
}
/// <summary>
/// '杨小姐委托'类型
/// </summary>
public delegate void MissYangDelegate();//@B
}

后序:从上面的例子也许并不能直观的看出使用委托的好处;但是知道委托是这么一回事(简单来说:实例委托类型的时候,往委托里面传一个方法名,如 "@C"和"@D"两处),先抛开事件不去想;

C#委托理解(个人观点)的更多相关文章

  1. 委托学习总结(一)浅谈对C#委托理解

    初入社会,对于我这个初级程序员来说要学的东西实在太多了,公司最近在做一个winform框架开发的桌面应用程序,众所周知,winform也好,webform也好,里面随处可见的事件驱动,有事件,当然也少 ...

  2. 通过Func 委托理解委托和匿名方法及Lambda 表达式

    Func<T, TResult> 委托 封装一个具有一个参数并返回 TResult 参数指定的类型值的方法. 命名空间: System 程序集: mscorlib(在 mscorlib.d ...

  3. C#学习之初步理解委托、事件、匿名方法和Lambda

    最经在学习LinqtoSql,然后扯到Lambda表达式,然后扯到匿名方法,然后扯到委托,最后扯到事件处理...后来发现对委托这个概念和事件处理这个过程理解得不是很清晰,遂得一下学习笔记.那里说得不对 ...

  4. 理解委托(delegate)及为什么要使用委托

    理解委托(delegate)及为什么要使用委托 委托:是一种定义方法签名的类型. 当实例化委托时,您可以将其实例与任何具有兼容签名的方法相关联. 您可以通过委托实例调用方法. 上述为官方说法,理解起来 ...

  5. C#对委托的初步理解理解

    作为新手对委托的学习: 1.定义委托:委托实际上是一个类,在定义委托前就知道了方法的返回类型和方法的参数类型(可以把委托理解为只知道方法的返回类型和方法的参数类型,不知道方法体) public  de ...

  6. C#委托与事件

    一.在控制台下使用委托和事件 我们都知道,C#中有"接口"这个概念,所谓的"接口"就是定义一套标准,然后由实现类来具体实现其中的方法,所以说"接口,是 ...

  7. C#深入浅出 C#语法中的重中之重——委托(四)

    入行半年多了,委托干什么用的还不知道,真心说不过去了,关键对这东西有点恐惧,主要是被老师吓的,记得我C#专业课老师在讲到委托时,原话是这样的,同学们,委托这个地方是难点,暂时不讲,讲了你也不懂,等你有 ...

  8. 深入理解事件(Event)

    前言 在前一篇文章中讲到了Event 发布与订阅(一) 里面用到了事件来实现一些发布与订阅,当时对事件及其委托理解的还不是太深入,可能在使用上有点捉急.这篇来好好讲讲事件,以及通过一些小DEMO来加深 ...

  9. 再谈C#委托与事件

    之前写过一篇关于C#委托与事件的文章(见<C#委托和事件例析>),不过还是收到一些网友的提问.所以,今天再换另一个角度来详解一下这个问题. 一.在控制台下使用委托和事件 我们都知道,C#中 ...

随机推荐

  1. android studio对于错误拼写/不识别的英文单词,给予波浪提示

    使用自己的名字当Tag.却发现有个非常不用好的提示.波浪,我浪个你妹. Typo:In word ‘miyuehu’ less...(Ctrl+F1) spellchecker inspection ...

  2. rigidbody2D.velocity 提示缺少using?用的unity5?

    请用 GetComponent<Rigidbody2D>().velocity

  3. Git服务器搭建及配置

    一.部署环境 Server操作系统:CentOS release 6.7 (Final) 内核版本:2.6.32-358.el6.x86_64 git版本:1.9.0,源码下载地址如下 https:/ ...

  4. DNS学习笔记之DNS理论知识

    DNS: Domain Name System (将域名和ip地址相互转化) 域名是一个范围,例如baidu.com,.com.而www.baidu.com是个主机名,即FQDN: Full Qual ...

  5. Docker搭建Java Web运行环境

    1. 前提条件 安装了Docker的64位Linux 操作系统 Linux操作系统镜像 Linux版本的JDK压缩包 Linux版本的Tomcat压缩包 2. 启动容器 容器是在镜像的基础上来运行的, ...

  6. 使用游戏引擎photon打造一款特殊的远程控制软件

    前言 本文主要是介绍photon引擎的一些基本用法,以及使用游戏引擎开发远控的优势 0x1 有一段时候对做游戏的unity开发有些兴趣,在找游戏服务端引擎的时候,突然发现了这款歪果人开发的游戏引擎ph ...

  7. html5 EvnetSource 与 JSP页面结合使用

    最近一直在研究前端的技术,特别是html5的技术,本人觉得html5的发展将越来越好,废话少说.看到了EventSource,根据官方的说法是服务器向客户端的推送服务.自己想找一些例子看看,发现都是P ...

  8. contiki学习笔记---process结构体

    process,字面意义,进程,看看它的结构 struct process { struct process *next; #if PROCESS_CONF_NO_PROCESS_NAMES #def ...

  9. o-sync-and-o-direct

    https://lwn.net/Articles/457667/ https://lwn.net/Articles/457667/ https://lwn.net/Articles/457667/ h ...

  10. web三种跨域请求数据方法

    以下测试代码使用php,浏览器测试使用IE9,chrome,firefox,safari <!DOCTYPE HTML> <html> <head>     < ...