摘自:C#程序设计教程 朱毅华 第134页
using System;
using System.Collections.Generic;
using System.Text;
namespace t_Event
{
//--定义事件包含数据
class MyEventArgs : EventArgs
{
private string strText;
public MyEventArgs(string StrText) //--构造函数
{
this.strText = StrText;
}
public string StrText
{
get { return strText; }
set { strText = value; }
}
}
//--发布事件的类
class EventSource
{
MyEventArgs EvArgs = new MyEventArgs("发布事件");
//定义委托
public delegate void EventHandler(object from, MyEventArgs e);
//定义事件
public event EventHandler TextOut;
//--激活事件的方法
public void TriggerEvent()
{
if (TextOut != null) //--不为空,表示有用户订阅
{
TextOut(this, EvArgs);
}
}
}
//--订阅事件的类
class TestApp
{
//--处理事件的静态方法
public static void CatchEvent(object from, MyEventArgs e)
{
Console.WriteLine("调用方法CatchEvent");
Console.WriteLine("CatchEvent:{0}",e.StrText);
}
//处理事件的方法
public void InstanceCatch(object from, MyEventArgs e)
{
Console.WriteLine("调用方法InstanceCatch");
Console.WriteLine("InstanceEvent:{0}", e.StrText);
}
static void Main(string[] args)
{
EventSource evsrc = new EventSource();
//订阅事件
evsrc.TextOut += new EventSource.EventHandler(CatchEvent);
evsrc.TriggerEvent();
Console.WriteLine("1 -------------------------");
//取消事件
evsrc.TextOut -= new EventSource.EventHandler(CatchEvent);
evsrc.TriggerEvent();
Console.WriteLine("取消事件后,这次什么都没做");
Console.WriteLine("2 -------------------------");
TestApp theApp = new TestApp();
evsrc.TextOut += new EventSource.EventHandler(theApp.InstanceCatch);
evsrc.TriggerEvent();
Console.WriteLine("3 -------------------------");
Console.ReadKey();
}
}
}
分享到:
相关推荐
委托和事件代码示例,简单容易懂。。。。。。。。。。。。。。。。。。。
该代码是使用最简单的控制台程序代码 ,以最简单形式介绍了.net 中的事件机制。
这是一段使用OpenCV库进行鼠标事件处理的示例代码。代码中通过创建窗口和设置鼠标回调函数,实现了在图像上单击左键或右键时分别输出相应的坐标信息。通过运行这段代码,您可以学习如何在OpenCV中使用鼠标事件处理...
SpringBoot事件发布及订阅详解含代码示例(值得珍藏) 内容简介: 1、简介概述 2、使用示例 3、总结
c# 视频监控代码示例,适用于C#开发者学习使用。
事件 事件 包含演示事件处理的示例。 可扩展性 可扩展性 包含演示如何以编程方式修改项目的示例。 合成 合成 包含演示合成缓存的示例。 国际化 国际化 包含演示如何针对国际市场编写代码的示例。 语言 语言 ...
介绍C#中委托与事件的示例代码,阐述了委托和事件的密切联系,展现C#的迷人魅力。
本示例演示如何在 C# 中声明、调用和配置事件。有关其他信息,请参见事件(C# 编程指南)。 提供此代码示例是为了阐释一个概念,它并不代表最安全的编码实践,因此不应在应用程序或网站中使用此代码示例。
matlab开发-跳动模拟代码45事件检测示例。使用动画模拟杆的弹跳和翻滚。
Java样本我的博客中使用的Java代码示例:unit 以下JUnit帖子的代码示例:电线模拟以下WireMock帖子的代码示例: 使用Jersey创建简单的REST API客户端带有WireMock的Mock / Stub REST API,可进行更好的单元测试 ...
是关于加载使用cocostudioGUI的示例,演示了如何加载cocostudio导出的UI工程,为在项目中为里面的控件添加事件响应,请使用的童鞋下载最新的cocos2d-x2.2.1版本
收集一些C#程序员面试题常见示例代码,主要有:不同元素上使用特性、动态发射程序集、多次申明同一特性、多事件类型、反射工厂模式的实现、反射类型的使用、链式委托的返回值、链式委托、句柄的使用和转换、简单程序...
可以使用switch功能,使多个控件的事件共享同一个事件处理方法。简化代码编写
事件:如果类型定义了事件成员,那么类型就可以通知其他对象发生了特定的事情。例如,Button类提供了一个名为Click的事件。应用程序中的一个或者多个对象可能想接收关于这个事件的通知...下面上代码: 第一步:定义类型
示例描述:本章介绍了XAML的语法,包括原理、使用方法以及事件处理等等。 AttachedProperty 使用XAML中的附加属性。 CodebehindDemo 使用XAML中的后置代码文件编写程序代码。 LooseXaml 松散XAML示例。 ...
通过使用 Graphics View Framework,你可以创建具有丰富交互性和定制性的 2D 图形界面。你可以在场景中添加、移动和删除图形项,并通过视图来查看和操作场景。Graphics View Framework 还提供了方便的方法来处理事件...
文档中包含的示例应用可以直接导入designer的应用中进行使用; 示例代码主要是关于事件使用的;
事件研究BHAR计算Stata代码 BHAR(Buy and Hol d Abnormal Return)购买持有异常收益率衡量了购买公司股票并一直持 有直到考察期结束,公司股票收益率超过市场组合对应组合收益率的值。 BHAR指标的 计算公式如下 ...
DWZ框架支持用HTML扩展的方式来代替JavaScript代码,只要懂HTML语法, 再参考DWZ使用手册就可以做Ajax开发。 开发人员不写JavaScript的情况下,也能用Ajax做项目和使用各种UI组件。 基本可以保证程序员不懂...