如何使用委托与事件来实现观察者模式

 
using System;
using System.Collections.Generic;

namespace MyLearn
{  
    
    public class MyWork
    {
        public delegate void CurrentEvent(int process);
        public event CurrentEvent ce;
        
        public void DoWorking()
        {
            for(int i=0;i<100;i++)
            {
                ce(i);
            }
        }
    }
    public class ShowTest
    {
        public void ShowProcess(int i)
        {
            Console.WriteLine("woring is "+i.ToString());
        }
    }
    class MainClass
    {
        public static void Main(string[] args)
        {
             
            ShowTest b=new ShowTest();
            MyLearn.MyWork test=new MyLearn.MyWork();
            
            test.ce+= new MyLearn.MyWork.CurrentEvent(b.ShowProcess);
             test.DoWorking();
            Console.ReadLine();
            
        }
        
        
    }
}

 

时间: 2024-08-13 01:04:22

如何使用委托与事件来实现观察者模式的相关文章

解惑答疑:C#委托和事件

相信很多人一直为C#委托和事件所困惑,尤其是C#的初学者,学到这一部分会感觉比较困难,很有可能就放弃了,而且.NET对委托和事件封装得挺好,一般都不怎么用到自定义的委托和事件,所以放弃学习该技术就有了借口! 网上也有不少此类的文章,最具代表性的是张子阳的C#中的委托和事件这篇,写得的确很好,得到很多读者的赞赏,但我看评论,还是发现了些问题,因为有不少读者是看了一遍又一遍,每次感觉都蛮好,可是隔一段时间,对"委托和事件"又迷糊了,于是又来看!我真搞不懂,为什么会出现这种情况!后来想想,文

艾伟_转载:解惑答疑:C#委托和事件

相信很多人一直为C#委托和事件所困惑,尤其是C#的初学者,学到这一部分会感觉比较困难,很有可能就放弃了,而且.NET对委托和事件封装得挺好,一般都不怎么用到自定义的委托和事件,所以放弃学习该技术就有了借口! 网上也有不少此类的文章,最具代表性的是张子阳的C#中的委托和事件这篇,写得的确很好,得到很多读者的赞赏,但我 看评论,还是发现了些问题,因为有不少读者是看了一遍又一遍,每次感觉都蛮好,可是隔一段时间,对"委托和事件"又迷糊了,于是又来看!我真搞不懂,为什 么会出现这种情况!后来想想

从反射看委托与事件 委托真的是一个类

关于委托与事件,网上介绍得非常之多,在此不再赘述,本人最近需要捣鼓一些委托,因而对委托进行一 定的寻根究底,故用反射把委托的成员揪出来,且看如下代码: delegate void DelegateDemo(); static event DelegateDemo delHandle; static void Main() { delHandle += new DelegateDemo(MyDelegate_delHandle); MemberInfo[] mis = delHandle.GetT

C#委托和事件

委托和事件 .NET Framework 还可以广泛地将委托用于事件处理任务,如 Windows 或 Web 应用程序中的按钮 Click 事件.Java 中的事件处理通常通过实现自定义侦听器类完成,而 C# 开发人员则可以利用委托处理事件.事件的声明类似于具有委托类型的字段,区别在于事件声明前面有 event 关键字.事件通常被声明为 public,但允许使用任何可访问性修饰符.下面的示例演示了 delegate 和 event 的声明. C#  =复制代码 // Declare the de

你可能不知道的陷阱:C#委托和事件的困惑

一. 问题引入          通常,一个C语言学习者登堂入室的标志就是学会使用了指针,而成为高手的标志又是"玩转指针".指针是如此奇妙,通过一个地址,可以指向一个数,结构体,对象,甚至函数.最后的一种函数,我们称之为"函数指针"(和"指针函数"可不一样!)就像如下的代码: int func(int x); /* 声明一个函数 */ int (*f) (int x); /* 声明一个函数指针 */ f=func; /* 将func函数的首地址赋

C#中委托,事件理解入门

目录 l        导论 l        什么是委托 l        事件的理解 l        事件 关键字 l        最后     导论     在学习C#中的委托和事件过程中,我读了许多文章来理解他们二者究竟是怎么一回事,以及如何使用他们,现在我将整个的理解过程陈述以下,我学到的每一方面,恐怕也是你们需要掌握的 :-). 什么是委托?     委托和事件这两个概念是完全配合的.委托仅仅是函数指针,那就是说,它能够引用函数,通过传递地址的机制完成.委托是一个类,当你对它实例

C#编程利器之四:委托与事件(Delegate and event) (上)

本文试图在.net Framework环境下,使用C#语言来描述委托.事件的概貌.希望本文能有助于大家理 解委托.事件的概念,理解委托.事件的用途,理解它的C#实现方法,理解委托与事件为我们带来的好处 .C#是一种新的语言,希望大家能通过本文清楚地看到这些,从而可以对委托.事件等技术进行更深入的 理解和探索. 一. 委托 委托的本质 --在C#中,委托是一个特殊的类: --在某种程度上,相当于C++的函数指针: --在某种程度上,相当于接口(Interface): 委托的定义 --关键字:del

C#3.0笔记(二)预备知识之委托与事件

在上篇blog中简单地介绍了委托的基础知识,在这片文章中会介绍下委托跟 事件之间的联系. 事件的由来 我们可以看到在使用委托进行回调 的实现的时候,我们往往需要再定义一个委托对象,以及一个对外公开的辅助方 法来添加委托的方法,这样子会使我们感觉比较繁琐.C#提供了event关键字来 减轻直接使用委托的负担,编译器会自动提供注册.取消注册的方法和委托必要 的成员.首先来看看定义事件的步骤: 1.先定义委托类型: 2.通 过event关键字定委托类型的事件. public delegate int

C#----委托和事件(一)

什么是委托 委托怎么用 定义委托类型 声明委托对象 创建委托对象确定与哪些方法进行绑定 使用委托调用方法 使用委托注意事项 为什么用委托 总结      最近在做的项目,正在进行重构,之前的框架就是纯三层的简单调用,外加一些Session,SQLHelper等封装管理类,其他的东西,一直也想去抽象,但是奈何能力还有所欠缺,抽象出来的东西,被组长狠狠的给鄙视了一番,最近在组长的带领下,重新搭建框架,整个过程下来,真的是被狠狠的打击了,也真是服了我们组长了,太牛了,看来自己欠缺的还是很多很多.具体的