`

事件的使用 代码示例

阅读更多

 

摘自: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();
       
        }

    }


}

分享到:
评论

相关推荐

    委托和事件代码示例完整版

    委托和事件代码示例,简单容易懂。。。。。。。。。。。。。。。。。。。

    C# 简单的事件代码示例

    该代码是使用最简单的控制台程序代码 ,以最简单形式介绍了.net 中的事件机制。

    OpenCV鼠标事件示例代码

    这是一段使用OpenCV库进行鼠标事件处理的示例代码。代码中通过创建窗口和设置鼠标回调函数,实现了在图像上单击左键或右键时分别输出相应的坐标信息。通过运行这段代码,您可以学习如何在OpenCV中使用鼠标事件处理...

    SpringBoot事件发布及订阅详解含代码示例(值得珍藏)

    SpringBoot事件发布及订阅详解含代码示例(值得珍藏) 内容简介: 1、简介概述 2、使用示例 3、总结

    海康视频监控 c# 代码示例

    c# 视频监控代码示例,适用于C#开发者学习使用。

    微软MSDN官网 Visual Studio 2010 C++ 代码示例

    事件 事件 包含演示事件处理的示例。 可扩展性 可扩展性 包含演示如何以编程方式修改项目的示例。 合成 合成 包含演示合成缓存的示例。 国际化 国际化 包含演示如何针对国际市场编写代码的示例。 语言 语言 ...

    C#的委托与事件的示例代码

    介绍C#中委托与事件的示例代码,阐述了委托和事件的密切联系,展现C#的迷人魅力。

    “事件”示例

    本示例演示如何在 C# 中声明、调用和配置事件。有关其他信息,请参见事件(C# 编程指南)。 提供此代码示例是为了阐释一个概念,它并不代表最安全的编码实践,因此不应在应用程序或网站中使用此代码示例。

    matlab开发-跳动模拟代码45事件检测示例

    matlab开发-跳动模拟代码45事件检测示例。使用动画模拟杆的弹跳和翻滚。

    java-samples:我的博客Automation Rhapsody中使用的Java代码示例

    Java样本我的博客中使用的Java代码示例:unit 以下JUnit帖子的代码示例:电线模拟以下WireMock帖子的代码示例: 使用Jersey创建简单的REST API客户端带有WireMock的Mock / Stub REST API,可进行更好的单元测试 ...

    cocostudio GUI的控件事件响应示例

    是关于加载使用cocostudioGUI的示例,演示了如何加载cocostudio导出的UI工程,为在项目中为里面的控件添加事件响应,请使用的童鞋下载最新的cocos2d-x2.2.1版本

    C# 程序员 面试题 常见示例 代码

    收集一些C#程序员面试题常见示例代码,主要有:不同元素上使用特性、动态发射程序集、多次申明同一特性、多事件类型、反射工厂模式的实现、反射类型的使用、链式委托的返回值、链式委托、句柄的使用和转换、简单程序...

    C#共享事件处理函数示例

    可以使用switch功能,使多个控件的事件共享同一个事件处理方法。简化代码编写

    c#事件使用示例详解

    事件:如果类型定义了事件成员,那么类型就可以通知其他对象发生了特定的事情。例如,Button类提供了一个名为Click的事件。应用程序中的一个或者多个对象可能想接收关于这个事件的通知...下面上代码: 第一步:定义类型

    示例描述:本章介绍了XAML的语法,包括原理、使用方法以及事件处理等等。

    示例描述:本章介绍了XAML的语法,包括原理、使用方法以及事件处理等等。 AttachedProperty 使用XAML中的附加属性。 CodebehindDemo 使用XAML中的后置代码文件编写程序代码。 LooseXaml 松散XAML示例。 ...

    Qt Graphic-View框架学习代码示例

    通过使用 Graphics View Framework,你可以创建具有丰富交互性和定制性的 2D 图形界面。你可以在场景中添加、移动和删除图形项,并通过视图来查看和操作场景。Graphics View Framework 还提供了方便的方法来处理事件...

    Activiti6示例代码及应用

    文档中包含的示例应用可以直接导入designer的应用中进行使用; 示例代码主要是关于事件使用的;

    更新事件研究BHAR计算Stata代码(附示例数据)

    事件研究BHAR计算Stata代码 BHAR(Buy and Hol d Abnormal Return)购买持有异常收益率衡量了购买公司股票并一直持 有直到考察期结束,公司股票收益率超过市场组合对应组合收益率的值。 BHAR指标的 计算公式如下 ...

    dwz功能示例

    DWZ框架支持用HTML扩展的方式来代替JavaScript代码,只要懂HTML语法, 再参考DWZ使用手册就可以做Ajax开发。 开发人员不写JavaScript的情况下,也能用Ajax做项目和使用各种UI组件。 基本可以保证程序员不懂...

Global site tag (gtag.js) - Google Analytics