用代码来理解 C#委托与事件
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#委托与事件的更多相关文章
- 通俗理解C#委托和事件
引言 委托 和 事件在 .Net Framework中的应用非常广泛,然而,较好地理解委托和事件对很多接触C#时间不长的人来说并不容易.它们就像是一道槛儿,过了这个槛的人,觉得真是太容易了,而没有过去 ...
- 委托、事件、Observer观察者模式的使用解析二
一.设计模式-Observer观察者模式 Observer设计模式是为了定义对象间的一种一对多的依赖关系,以便于当一个对象的状态改变时,其他依赖于它的对象会被自动告知并更新.Observer模式是一种 ...
- C#基础篇 - 理解委托和事件
1.委托 委托类似于C++中的函数指针(一个指向内存位置的指针).委托是C#中类型安全的,可以订阅一个或多个具有相同签名方法的函数指针.简单理解,委托是一种可以把函数当做参数传递的类型.很多情况下,某 ...
- 怎么理解js中的事件委托
怎么理解js中的事件委托 时间 2015-01-15 00:59:59 SegmentFault 原文 http://segmentfault.com/blog/sunchengli/119000 ...
- C#知识体系(二)用案例来理解委托与事件
上一篇博客讲到了LinQ和lambda的常用方法 还有很多我们未知但c#设计团队已经为我们封装好的类和方法.随着我们不断的熟悉C#语言,渐渐的就会接触到其他的知识点,委托.事件.反射.线程.同步,异步 ...
- C#学习之初步理解委托、事件、匿名方法和Lambda
最经在学习LinqtoSql,然后扯到Lambda表达式,然后扯到匿名方法,然后扯到委托,最后扯到事件处理...后来发现对委托这个概念和事件处理这个过程理解得不是很清晰,遂得一下学习笔记.那里说得不对 ...
- 【详细】【转】C#中理解委托和事件
文章是很基础,但很实用,看了这篇文章,让我一下回到了2016年刚刚学委托的时候,故转之! 1.委托 委托类似于C++中的函数指针(一个指向内存位置的指针).委托是C#中类型安全的,可以订阅一个或多个具 ...
- C#中委托、事件和回调函数的理解
在C#中我们经常会碰到事件,尤其是在WPF或者WinForm中,窗体加载.或者点击一个按钮,都会触发事件.实际上,事件是对委托的封装.如果不进行封装,让委托暴露给调用者,调用者就可以把委托变量重新引用 ...
- 关于c#中委托与事件的一些理解
文章目的:作者(初学者)在学习c#的过程中,对事件.委托及其中的“object sender,EventArgs e”一直感觉理解不透,因此在网上找了一些资料,学习并整理出了该篇笔记,希望能将自己的心 ...
随机推荐
- acm常见算法及例题
转自:http://blog.csdn.net/hengjie2009/article/details/7540135 acm常见算法及例题 初期:一.基本算法: (1)枚举. (poj17 ...
- c# 考试
重点:值类型的变量直接存放实际的数据,存储在内存的栈中: 引用类型的变量存放的则是数据的地址,即对象的引用.存储在内存的堆中,而内存单元中只存放堆中对象的地址 常见的值类型数据有:整值型(整形,浮点型 ...
- CSS3初学篇章_4(边框样式/段落样式)
边框样式 1.边框线语法:border-style : none | hidden | dotted | dashed | solid | double | groove | ridge | inse ...
- # 20145334赵文豪 《Java程序设计》第6周学习总结
20145334赵文豪 <Java程序设计>第6周学习总结 教材学习内容总结 第十章 输入/输出 数据流 I/O操作主要是指使用Java进行输入,输出操作. Java所有的I/O机制都是基 ...
- Android课程---计算器的实现
<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="ht ...
- IOS第18天(6,CAKeyframeAnimation关键帧动画)
******* #import "HMViewController.h" @interface HMViewController () @property (weak, nonat ...
- C# 常用结构
几种常用类的基本结构如下: public Size( double width, double height ) public Point( double x, double y) public Ve ...
- 点击某个按钮弹出 photoswip
var openPhotoSwipe = function() { var pswpElement = document.querySelectorAll('.pswp')[0]; // build ...
- GDC2016【For Honor-荣耀战魂】的次世代动画技术
生成自然丰富,反应灵敏的动作的“Motion Matching”是什么? Ubisoft在2016年内预定发售的[荣誉战魂],是基于MOBA类集团战斗,并加入了高度紧张的剑斗动作的多人 ...
- ajax+ashx
eg: $('.setIsEnableClosed').click(function(){ var id=$(id).attr("name"); var isChecked=$(t ...