C# 2.0学习之--事件1

翻译 2006年06月23日 18:40:00

//Copyright (C) Microsoft Corporation.  All rights reserved.

// events1.cs
using System;
namespace MyCollections
{
   using System.Collections;

   // A delegate type for hooking up change notifications.
   public delegate void ChangedEventHandler(object sender, EventArgs e);

   // A class that works just like ArrayList, but sends event
   // notifications whenever the list changes.
   public class ListWithChangedEvent: ArrayList
   {
      // An event that clients can use to be notified whenever the
      // elements of the list change.
      public event ChangedEventHandler Changed;

      // Invoke the Changed event; called whenever list changes
      protected virtual void OnChanged(EventArgs e)
      {
         if (Changed != null)
            Changed(this, e);
      }

      // Override some of the methods that can change the list;
      // invoke event after each
      public override int Add(object value)
      {
         int i = base.Add(value);
         OnChanged(EventArgs.Empty);
         return i;
      }

      public override void Clear()
      {
         base.Clear();
         OnChanged(EventArgs.Empty);
      }

      public override object this[int index]
      {
         set
         {
            base[index] = value;
            OnChanged(EventArgs.Empty);
         }
      }
   }
}

namespace TestEvents
{
   using MyCollections;

   class EventListener
   {
      private ListWithChangedEvent List;

      public EventListener(ListWithChangedEvent list)
      {
         List = list;
         // Add "ListChanged" to the Changed event on "List".
         List.Changed += new ChangedEventHandler(ListChanged);
      }

      // This will be called whenever the list changes.
      private void ListChanged(object sender, EventArgs e)
      {
         Console.WriteLine("This is called when the event fires.");
      }

      public void Detach()
      {
         // Detach the event and delete the list
         List.Changed -= new ChangedEventHandler(ListChanged);
         List = null;
      } 
   }

    class Test
   {
      // Test the ListWithChangedEvent class.
      public static void Main()
      {
      // Create a new list.
      ListWithChangedEvent list = new ListWithChangedEvent();

      // Create a class that listens to the list's change event.
      EventListener listener = new EventListener(list);

      // Add and remove items from the list.
      list.Add("item 1");
      list.Clear();
      listener.Detach();
      }
   }
}

 


 

csc events1.cs
events1

改进神经网络的学习方式(译文)----上

当一个高尔夫球员刚开始学习打高尔夫时,他们通常会在挥杆的练习上花费大多数时间。慢慢地他们才会在基本的挥杆上通过变化发展其他的击球方式,学习低飞球、左曲球和右曲球。类似的,我们现在仍然聚焦在反向传播算法...
  • langb2014
  • langb2014
  • 2016年01月09日 17:22
  • 1147

【Redis学习笔记(七)】 Redis中的事务

在【Redis学习笔记】前面几篇文章中,我们简单介绍了Redis中的五种数据结构相关的命令,今天,我们来介绍一下Redis中的事务Transaction。一、什么事事务如果你之前接触过MySQL、Or...
  • Xiejingfa
  • Xiejingfa
  • 2016年02月16日 16:31
  • 1489

系统学习机器学习之SVM(一)

原文引自: http://blog.csdn.net/sunanger_wang/article/details/7887218 此处,我做下补充。 一、线性分类器: 首先给出一个非常非常简单的分类...
  • App_12062011
  • App_12062011
  • 2015年12月23日 11:13
  • 1706

C# Kinect 2.0 SDK 学习笔记(1)——彩色影像数据流

彩色影像数据流是Kinect摄像头最基本的数据,图像相当于一般的摄像头(废话)。 本节主要是获取Kinect摄像头的彩色影像数据,在Image控件上将其展示出来。 新建WPF项目KinectC...
  • ivanyoung66
  • ivanyoung66
  • 2015年07月06日 22:27
  • 2319

游戏人生Silverlight(1) - 七彩俄罗斯方块[Silverlight 2.0(c#)]

[源码下载] 游戏人生Silverlight(1) - 七彩俄罗斯方块[Silverlight 2.0(c#)] 作者:webabcd 介绍 使用 Silverligh...
  • chgsh_2008
  • chgsh_2008
  • 2011年12月01日 19:03
  • 293

黑马程序员11——C#的委托以及在.NET1.x .NET2.0及.NET3.5写法的演变(未完待续)

---------------------- Windows Phone 7手机开发、.Net培训、 期待与您交流!---------------------- 什么是委托 定义 ...
  • hm_liujunhong
  • hm_liujunhong
  • 2012年10月05日 17:03
  • 275

【转载】C#中的泛型 (From dotNet SDK 2.0 Beta1)

泛型(generic)是C#语言2.0和通用语言运行时(CLR)的一个新特性。泛型为.NET框架引入了类型参数(type parameters)的概念。类型参数使得设计类和方法时,不必确定一个或多个具...
  • kevindend
  • kevindend
  • 2011年09月08日 17:31
  • 468

微信开发学习 OAUTH2.0 搭配事件推送

//网页授权反馈 function authorization($code) { echo $code; $appid="wx65eff0c7cf9cbca3"; $appse...
  • u013011267
  • u013011267
  • 2014年07月15日 16:04
  • 984

extJs 2.0学习笔记(事件注册总结篇)

本来,我也没把这档子事放在眼里,因为简单,例如:   Ext.get("elem").on("click",{fn:function(){alert("此元素被单击了!");}};   这样的代码...
  • paopaomm
  • paopaomm
  • 2012年01月30日 09:32
  • 778

[教程]C#中的委托和事件1

虽然是2007的东西,但很经典 来源: http://www.cnblogs.com/jimmyzhang/archive/2007/09/23/903360.html 文中代码在VS2005下...
  • wangxsh42
  • wangxsh42
  • 2015年01月30日 19:08
  • 159
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:C# 2.0学习之--事件1
举报原因:
原因补充:

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