Delegate(Event) Sample

原创 2004年10月14日 17:21:00
using System;

namespace CSharpConsole
{
public class 场景
{
[STAThread]
public static void Main(string[] args)
{
Console.WriteLine("场景开始了....");
// 生成小王
小王 w = new 小王();
// 生成小账
小张 z = new 小张();

// 指定监视
z.PlayGame += new PlayGameHandler(w.扣钱);

// 开始玩游戏
z.玩游戏();

Console.WriteLine("场景结束...");
Console.ReadLine();
}
}



// 负责扣钱的人
public class 小王
{
public 小王()
{
Console.WriteLine("生成小王...");
}

public void 扣钱(object sender,EventArgs e)
{
Console.WriteLine("小王:好小子,上班时间胆敢玩游戏...");
Console.WriteLine("小王:看看你小子有多少钱...");
小张 f = (小张)sender;
Console.WriteLine("小张的钱: " + f.钱.ToString());
Console.WriteLine("开始扣钱......");
System.Threading.Thread.Sleep(500);
f.钱 = f.钱 - 500;
Console.WriteLine("扣完了....现在小张还剩下:" + f.钱.ToString());
}
}

// 如果玩游戏,则引发事件
public class 小张
{
// 先定义一个事件,这个事件表示“小张”在玩游戏。
public event PlayGameHandler PlayGame;
// 保存小张钱的变量
private int m_Money;

public 小张()
{
Console.WriteLine("生成小张....");
m_Money = 1000; // 构造函数,初始化小张的钱。
}

public int 钱 // 此属性可以操作小张的钱。
{
get
{
return m_Money;
}
set
{
m_Money = value;
}
}

public void 玩游戏()
{
Console.WriteLine("小张开始玩游戏了.....");
Console.WriteLine("小张:CS好玩,哈哈哈! 我玩.....");
System.Threading.Thread.Sleep(500);
System.EventArgs e = new EventArgs();
OnPlayGame(e);
}

protected virtual void OnPlayGame(EventArgs e)
{
if(PlayGame != null)
{
PlayGame(this,e);
}
}
}

// 定义委托处理程序
public delegate void PlayGameHandler(object sender,System.EventArgs e);

}

a sample of delegate & event

public delegate void NameListEventHandler(object sender, NameListEventArgs e);public class NameListe...
  • Riglog
  • Riglog
  • 2005年05月16日 11:04
  • 717

在使用delegate时,使用event 与不使用的区别

转自:http://www.cnblogs.com/shensr/archive/2005/11/24/283653.html 首先说明,event其实也是一种delegate,为了区分,我...
  • wonengxing
  • wonengxing
  • 2015年02月04日 21:09
  • 1254

C#中的delegate与event简单讲解

一、开篇忏悔 对自己最拿手的编程语言C#,我想对你说声对不起,因为我到现在为止才明白c#中的delegate和event是怎么用的,惭愧那。好了,那今天就趁月黑风高的夜晚简单来谈谈delegat...
  • liulong1567
  • liulong1567
  • 2015年08月30日 13:56
  • 625

C#中的delegate和event简单示例

C# 中的“事件”是当对象发生某些有趣的事情时,类向该类的客户提供通知的一种方法。事件最常见的用途是用于图形用户界面;通常,表示界面中的控件的类具有一些事件,当用户对控件进行某些操作(如单击某个按钮)...
  • bboyfeiyu
  • bboyfeiyu
  • 2013年03月08日 21:16
  • 1679

C#:代表(delegate)和事件(event) (转)

C#:代表(delegate)和事件(event) (转) 代表(delegate):  它是C#语言里面的函数指针,代表可以指向某一个函数,在运行的时候调用这个函数的实现。下面来看看它的实现步骤...
  • jhycjhyc
  • jhycjhyc
  • 2015年06月01日 16:16
  • 965

关于unity 使用delegate 和 event 小例子

本人属于水平不高的,看了项目中使用的delegate和event,拿来分享一下。 网上关于delegate和event的例子已经非常非常多了,讲解的一定比我详细,但是有时时间紧迫没时间仔细研究想拿来直...
  • bill501y
  • bill501y
  • 2015年01月21日 15:45
  • 3907

C#中的委托(Delegate)和事件(Event)

分类:   把C#中的委托(Delegate)和事件(Event)放到现在讲是有目的的:给下次写的设计模式——观察者(Observer)有一个参考。     委托和事件应该是C#相较于...
  • haihsl123456789
  • haihsl123456789
  • 2015年03月13日 22:45
  • 1063

C#event 与 delegate的区别

C# in a nutshell 这本书讲的很清楚 我也是看了几遍才看到重点: event对象 在拥有该对象的类内部可以把它当成和delegate一样的东西 只有在类外部使用这个event的时候才...
  • cwj649956781
  • cwj649956781
  • 2015年01月10日 17:26
  • 1133

C# 委托delegate与事件Event的用法和相关知识

什么是事件?事件有哪些?怎么用事件? 一、什么是事件? 事件(Event) 基本上说是一个用户操作,如按键、点击、鼠标移动、输入值改变等等,或者是一些出现,如系统生成的通知。应用程序需要在事件发生时...
  • smooth_tailor
  • smooth_tailor
  • 2016年09月08日 11:17
  • 2059

C#中Delegate和Event的实现原理以及用法。

最近做项目,发现一些线程方法异常,查半天没有发现什么的地方能引发这些异常。具体看下面列子。 public class A A a = new A(); A b =a; object.R...
  • a395277988
  • a395277988
  • 2014年09月28日 22:22
  • 440
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Delegate(Event) Sample
举报原因:
原因补充:

(最多只允许输入30个字)