[自学问题总结]委托与事件

委托,通熟易懂的举个例子:妈妈让小新去买东西

一 首先是C#语法

 

public delegate void BuyThingEventHandler();

 

 

 

delegate是关键字

EventHandler是一个声明委托的微软C#的命名标准

二 定义小新类

 

/// <summary>

/// 小新类

/// </summary>

private class CraYon

{

	public static void BuyThing()

	{

		Console.WriteLine("妈妈,东西买好了!");

	}

}


三 主方法

 

 

 

 

internal class Program

	{

		public delegate void BuyThingEventHandler();



		private static void Main(string[] args)

		{

			BuyThingEventHandler myDelegate = new BuyThingEventHandler(CraYon.BuyThing);



			myDelegate();

			Console.ReadKey();

		}

	}

 

 

 

BuyThingEventHandler myDelegate = new BuyThingEventHandler(CraYon.BuyThing);这个是委托声明方法。
注:委托的参数和返回值类型,都要和具体委托的方法一致:

public delegate void BuyThingEventHandler();


public static void BuyThing(){
Console.WriteLine("妈妈,东西买好了!");

}

四 委托链

简单描述为,妈妈让小新去买完东西后,还让他带小白去散步。

 

using System;



namespace test1

{

	internal class Program

	{

		public delegate void BuyThingEventHandler();



		private static void Main(string[] args)

		{

			//委托

			BuyThingEventHandler myDelegate = new BuyThingEventHandler(CraYon.BuyThing);

			myDelegate += CraYon.WalkDog;



			myDelegate();

			Console.ReadKey();

		}

	}



	/// <summary>

	/// 小新类

	/// </summary>

	public class CraYon

	{

		public static void BuyThing()

		{

			Console.WriteLine("妈妈,东西买好了!");

		}



		public static void WalkDog(){

			Console.WriteLine("妈妈,小狗散完步了,收集的大便给你!");

		}

	}

}

 

 

其实我们只是在程序中加了
myDelegate += CraYon.WalkDog;
这个委托就相当于做了两件事,先买东西再带小白散步。

 

你可能感兴趣的:(总结)