⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 class1.cs

📁 c#网络编程及应用-刘瑞新
💻 CS
字号:
using System;
namespace MyCollections 
{
	using System.Collections;
	public delegate void ChangedEventHandler(object sender, EventArgs e);
	public class ListWithChangedEvent: ArrayList 
	{
		public event ChangedEventHandler Changed;
		protected virtual void OnChanged(EventArgs e) 
		{
			if (Changed != null)
				Changed(this, e);
		}
		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;
			List.Changed += new ChangedEventHandler(ListChanged);
		}
		private void ListChanged(object sender, EventArgs e) 
		{
			Console.WriteLine("开始让我处理了!");
		}
		public void Detach() 
		{
			List.Changed -= new ChangedEventHandler(ListChanged);
			List = null;
		}
	}
	class Test 
	{
		public static void Main() 
		{
			ListWithChangedEvent list = new ListWithChangedEvent();
			EventListener listener = new EventListener(list);
			list.Add("item 1");
			list.Clear();
			listener.Detach();
			Console.Read();
		}
	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -