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

📄 class1.cs

📁 Csharp实例编程百例.rar
💻 CS
字号:
using System;

namespace testEventApp
{
	public delegate void Class2_Event_Handler(object sender, string strEventArg);

	/// <summary>
	/// Class1 的摘要说明。
	/// </summary>
	class Class1
	{

		public Class1()
		{
			Console.WriteLine ("Class1>>>创建一个Class1对象!");
		}
		/// <summary>
		/// 应用程序的主入口点。
		/// </summary>
		[STAThread]
		static void Main(string[] args)
		{
			//
			// TODO: 在此处添加代码以启动应用程序
			//
			Class1 aClass1 = new Class1 ();
			Class2 aClass2 = new Class2 ();	//创建一个Class2对象
			//将事件处理函数与Class2中的事件关联
			aClass2.Class2_Event += new Class2_Event_Handler(aClass1.On_Class2Event );
			//调用Class2中的方法,等待其触发事件
			aClass2.Class2_Event_Riser ();
		}

		private void On_Class2Event(object sender, string strEventArg)
		{	//Class2中事件发生时的处理函数
			Console.WriteLine ("Class1>>>收到Class2中的事件:" +strEventArg);
			if (strEventArg=="exit")
			{
				Class2 senderRef =( Class2)sender;
				//取消事件处理函数与Class2中事件的关联
				senderRef.Class2_Event -= new Class2_Event_Handler (this.On_Class2Event );
				Console.WriteLine ("Class1>>>不再接收Class2的事件!输入exit退出!");
			}
		}
	}


	class Class2
	{
		public Class2()
		{
			Console.WriteLine ("Class2>>>创建一个Class2对象!");
		}
		//利用delegate,定义一个事件
		public event Class2_Event_Handler Class2_Event;
		//一个可以触发事件的方法
		public void Class2_Event_Riser()
		{
			string strRead;
			while(true)
			{
				Console.Write ("Class2>>>");
				strRead = Console.ReadLine ();

				if ( Class2_Event!=null )//当事件处理函数存在时
				{
					Console.WriteLine ("Class2>>>发送事件:"+strRead);
					Class2_Event(this, strRead);//触发delegate中的事件处理函数
				}
				else if (strRead == "exit")
				{
					System.Environment .Exit (-1);				
				}
			}
		}
	}
}

⌨️ 快捷键说明

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