多播委托

//------------------------------------------------------------------------------
// <auto-generated>
//     此代码由工具生成。
//     运行时版本:4.0.30319.33440
//
//     对此文件的更改可能会导致不正确的行为,并且如果
//     重新生成代码,这些更改将会丢失。
// </auto-generated>
//------------------------------------------------------------------------------
using System;
namespace Solution8
{
	public class Program
	{
		static void Test1 ()
		{
			Console.WriteLine ("Test1");
		}
		static void Test2 ()
		{
			Console.WriteLine ("Test2");
		}

		public Program ()
		{

		}
		static void Main ()
		{//多播委托
			Action a = Test1;
			//a = Test2;
			a += Test2;
			a ();
			a -= Test1;
			a ();
			a -= Test2;
			if (a != null)
				a ();//当一个委托不指向任何方法的时候, 会出现null错误.


			Console.WriteLine ("/------------------------------------------------");
			//获得多播委托列表
			a += Test1;
			a += Test2;
			Delegate[] delegates = a.GetInvocationList ();
			foreach (Delegate de in delegates) {
				de.DynamicInvoke ();
			}
		}
	}
}

 

你可能感兴趣的:(多播委托)