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

📄 codefile1.cs

📁 大学操作系统课程的其中一个实验--作业调度的模拟
💻 CS
字号:
/*Visual C# 示例   

“事件”示例请参见
事件教程 | 教程示例
示例文件:Events.csproj
Events.sln
readme.txt
Events1 
events1.cs
Events1.csproj
Events2 
events2.cs
Events2.csproj
加载示例解决方案
复制所有文件
帮助
本示例说明如何在 C# 中声明事件、调用事件和与事件挂钩。 

该示例包含事件教程的源代码。

在 Visual Studio 内生成并运行示例
生成并运行“事件”示例 

打开解决方案 (Events.sln)。 
在解决方案资源管理器中,右击“Events1”项目并单击“设为启动项目”。 
在“调试”菜单中,单击“开始执行(不调试)”。 
对 Events2 重复第 2 步和第 3 步。 
从命令行生成并运行示例
生成并运行“事件”示例 

使用“更改目录”命令转到 Events1 目录。 
键入下列内容: 
csc events1.cs
events1
使用“更改目录”命令转到 Events2 目录。 
键入下列内容: 
csc events2.cs
events2
请参见
事件教程 | 教程示例



--------------------------------------------------------------------------------

将文档反馈发送给 Microsoft

? 2002 Microsoft Corporation。保留所有权利。


--------------------------------------------------------------------------------

 

返回到页首*/

//版权所有 (C) 2000 Microsoft Corporation。保留所有权利。 

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

	// 用于与更改通知挂钩的委托类型。 
	public delegate void ChangedEventHandler(object sender, EventArgs e); 

	// 一个类,该类与 ArrayList 类似,但每当列表更改时将发送 
	// 事件通知。 
	public class ListWithChangedEvent: ArrayList 
	{ 
		// 一个事件,每当列表元素更改时,客户端可以使用该事件 
		// 来获得通知。 
		public event ChangedEventHandler Changed; 

		// 调用 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; 
			// 将“ListChanged”添加到“List”中的 Changed 事件。 
			List.Changed += new ChangedEventHandler(ListChanged); 
		} 

		// 这将在列表发生更改时调用。 
		private void ListChanged(object sender, EventArgs e) 
		{ 
			Console.WriteLine("This is called when the event fires."); 
		} 

		public void Detach() 
		{ 
			// 分离事件并删除列表 
			List.Changed -= new ChangedEventHandler(ListChanged); 
			List = null; 
		} 
	} 

	class Test 
	{ 
		// 测试 ListWithChangedEvent 类。 
		public static void Main() 
		{ 
			// 创建新的列表。 
			ListWithChangedEvent list = new ListWithChangedEvent(); 

			// 创建侦听列表的更改事件的类。 
			EventListener listener = new EventListener(list); 

			// 在列表中添加和移除项。 
			list.Add("item 1"); 
			list.Clear(); 
			listener.Detach(); 
		} 
	} 
} 


 

⌨️ 快捷键说明

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