C#中委托是什么?事件是委托吗?

1.委托是讲方法作为参数代入另一个方法中, 委托可以理解为指向一个函数的引用。

 class Program
{ public delegate void DelegateGreeting(string sName); // 步骤1,声明delegate对象z static void Main(string[] args)
{
Console.WriteLine("输出结果是:");
DelegateGreeting du = new DelegateGreeting(Program.MakeGreet); // 步骤2,创建DelegateUtil对象
du("I'm learning delegate now !");// 步骤3,调用DelegateUtil
Console.ReadLine();
}
/// <summary>
/// 描述:这是想要传递的方法,该方法与定义的委托(即DelegateUtil)具有相同的参数和返回值类型,函数名是不一样的哦!
/// </summary>
/// <param name="sName"></param>
public static void MakeGreet(string sName)
{
Console.WriteLine("Hi, " + sName);
}
}

输出:

Hi,I'm learning delegate now !

注:参数不一样是,声明委托时参数也不一样

    class Program
{
public delegate void DelegateGreeting(string sName,Language lan); // 步骤1,声明delegate对象z static void Main(string[] args)
{
Console.WriteLine("输出结果是:");
DelegateGreeting du = new DelegateGreeting(Program.PeopelGreet); // 步骤2,创建DelegateUtil对象
du("xiaoming",Language.English);// 步骤3,调用DelegateUtil
Console.ReadLine();
}
/// <summary>
/// 描述:这是想要传递的方法,该方法与定义的委托(即DelegateUtil)具有相同的参数和返回值类型,函数名是不一样的哦!
/// </summary>
/// <param name="sName"></param>
public static void PeopelGreet(string sName, Language lan)
{
switch (lan)
{
case Language.English:
{
Console.WriteLine("Morning, " + sName);
break;
}
case Language.Chinese:
{
Console.WriteLine("早上好, " + sName);
break;
}
} }
}
public enum Language
{
English, Chinese
}

输出:

输出结果是:
Morning,xiaoming

待续。。。。

http://www.tracefact.net/CSharp-Programming/Delegates-and-Events-in-CSharp.aspx

http://www.cnblogs.com/xlx0210/archive/2010/08/08/1794959.html


												

用代码来理解 C#委托与事件的更多相关文章

  1. 通俗理解C#委托和事件

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

  2. 委托、事件、Observer观察者模式的使用解析二

    一.设计模式-Observer观察者模式 Observer设计模式是为了定义对象间的一种一对多的依赖关系,以便于当一个对象的状态改变时,其他依赖于它的对象会被自动告知并更新.Observer模式是一种 ...

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

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

  4. 怎么理解js中的事件委托

    怎么理解js中的事件委托 时间 2015-01-15 00:59:59  SegmentFault 原文  http://segmentfault.com/blog/sunchengli/119000 ...

  5. C#知识体系(二)用案例来理解委托与事件

    上一篇博客讲到了LinQ和lambda的常用方法 还有很多我们未知但c#设计团队已经为我们封装好的类和方法.随着我们不断的熟悉C#语言,渐渐的就会接触到其他的知识点,委托.事件.反射.线程.同步,异步 ...

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

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

  7. 【详细】【转】C#中理解委托和事件

    文章是很基础,但很实用,看了这篇文章,让我一下回到了2016年刚刚学委托的时候,故转之! 1.委托 委托类似于C++中的函数指针(一个指向内存位置的指针).委托是C#中类型安全的,可以订阅一个或多个具 ...

  8. C#中委托、事件和回调函数的理解

    在C#中我们经常会碰到事件,尤其是在WPF或者WinForm中,窗体加载.或者点击一个按钮,都会触发事件.实际上,事件是对委托的封装.如果不进行封装,让委托暴露给调用者,调用者就可以把委托变量重新引用 ...

  9. 关于c#中委托与事件的一些理解

    文章目的:作者(初学者)在学习c#的过程中,对事件.委托及其中的“object sender,EventArgs e”一直感觉理解不透,因此在网上找了一些资料,学习并整理出了该篇笔记,希望能将自己的心 ...

随机推荐

  1. centos安装php

    1.安装phpyum install php php-devel重启apache使php生效 2.此时可以在目录:/var/www/html/下建立一个PHP文件代码:<?php phpinfo ...

  2. HTML5初学篇章_4

    HTML5的表单所有type类型(补第一章) 类型 说明 button 定义可点击的按钮(大多与 JavaScript 使用来启动脚本) checkbox 定义复选框. color 定义拾色器. da ...

  3. bzoj1855: [Scoi2010]股票交易--单调队列优化DP

    单调队列优化DP的模板题 不难列出DP方程: 对于买入的情况 由于dp[i][j]=max{dp[i-w-1][k]+k*Ap[i]-j*Ap[i]} AP[i]*j是固定的,在队列中维护dp[i-w ...

  4. 数据库---T-SQL语句提纲

    T-SQL语句: 创建表:create table Name(Code varchar(50)) 主键:primary key自增长列:auto_increment外键关系:references非空: ...

  5. Java的析构函数System的finalize()

    一个对象是由产生 到使用 到销毁的过程 即C++中 构造函数-> body->析构函数 在Java之中为了回收不需要的空间可以使用System类的finalize() class A{ p ...

  6. 使用 JavaScript 实现基本队列、优先队列和循环队列

    1.基本队列的实现 基本队列的方法中,包含了 ①向队列(尾部)中添加元素(enqueue).②(从队列头部)删除元素(dequeue).③查看队列头部的元素(front).④查看队列是否为空(isEm ...

  7. autocomplete一次返回多个值,并且选定后填到不同的Textbox中

    $(txtTest1).autocomplete({ source: function (request, response) { $.ajax({ url: 'HttpHandler.ashx?to ...

  8. MySql超新手入门

    https://www.kancloud.cn/thinkphp/mysql-tutorial/36457

  9. iOS,视图控制器相关(UIViewController)

    1.视图控制器各个方法调用时机 2.选项卡(Tab Bar)和导航栏(Navigation Bar) 3.有无控制器的页面跳转 4.页面跳转隐藏底部选项卡 5.获取导航栏和状态栏高度,隐藏导航栏返回按 ...

  10. luagd介绍

    luagd 官网: http://ittner.github.io/lua-gd/ 下载 http://files.luaforge.net/releases/lua-gd/lua-gd/lua-gd ...