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. PHP如何关闭notice级别的错误提示

    1.在php.ini文件中改动error_reporting改为:error_reporting=E_ALL & ~E_NOTICE2.如果你不能操作php.ini文件,你可以使用如下方法在你 ...

  2. DOS中cmd里常见的命令

    我们使用计算机接触最频繁的就是DOS.DOS是英文Disk Operating System的缩写,意思是“磁盘操作系统”,顾名思义,DOS主要是一种面向磁盘的系统软件,说得简单些,DOS就是人给机器 ...

  3. SSH框架中新建立实体类后的配置

    strut 层 public class Sellauthentication extends ActionSupport {    private SellauthenticationService ...

  4. WordPress的body_class()函数详解

    wordpress的body_class()函数,顾名思义,这个函数根据不同的页面类型为body标签生成class选择器,从而让设计人员可以各方便灵活的控制不同页面中的各个元素.本文对这一函数进行了详 ...

  5. 20145337 《Java程序设计》第二周学习总结

    20145337 <Java程序设计>第二周学习总结 教材学习内容总结 Java可分基本类型与类类型: 基本类型分整数(short.int.long).字节(byte).浮点数(float ...

  6. 关于Random类产生随机数的一些问题

    package test2; import java.util.Random; /** * @author cy * * @date 2015年7月28日 上午8:47:52 * * @Descrip ...

  7. 【转】Eclipse 常用快捷键 (动画讲解)

    Eclipse有强大的编辑功能, 工欲善其事,必先利其器, 掌握Eclipse快捷键,可以大大提高工作效率. 小坦克我花了一整天时间, 精选了一些常用的快捷键操作,并且精心录制了动画, 让你一看就会. ...

  8. 使用SharpSSH连接服务器报Algorithm negotiation fail解决办法

    SharpSSH或JSCH使用diffie-hellman-group1-sha1和diffie-hellman-group-exchange-sha1密钥交换算法,而OpenSSH在6.7p1版本之 ...

  9. 罪恶装备 Xrd REVELATOR 3D进化出的非照片真实视觉

    GUILTY GEAR Xrd REVELATOR 3D进化出的非照片真实视觉 罪恶装备系列是用2D日系动画一样的惊异视觉来吸引玩家的. 最新续品[GUILTY GEAR Xrd-REVELATOR- ...

  10. The index also can be used for LIKE comparisons if the argument to LIKE is a constant string that does not start with a wildcard character.

    http://dev.mysql.com/doc/refman/5.7/en/index-btree-hash.html MySQL 5.7 Reference Manual  /  ...  /   ...