class1.cs

来自「Csharp实例编程百例.rar」· CS 代码 · 共 53 行

CS
53
字号
using System;

namespace testDelegateApp
{
	/// <summary>
	/// Class1 的摘要说明。
	/// </summary>
	class Class1
	{
		/// <summary>
		/// 应用程序的主入口点。
		/// </summary>
		[STAThread]
		static void Main(string[] args)
		{
			//
			// TODO: 在此处添加代码以启动应用程序
			//
			Class1 aClass = new Class1 ();

			MyDelegate aDele = new MyDelegate ( Class1.StaticFunction );	//实例化一个delegate为静态方法
			aDele(10);														//调用delegate中的函数

			aDele = new MyDelegate ( aClass.InstanceFunction );				//实例化一个delegate为实例方法
			aDele(100);

			aClass.CallDele(new MyDelegate ( aClass.InstanceFunction ));	//把静态函数作为参数传递
			aClass.CallDele(new MyDelegate ( Class1.StaticFunction ));		//把实例函数作为参数传递
		}

		public delegate void MyDelegate(int i);	//声明delegate

		public static void StaticFunction(int i)
		{//接受delegate委托的static方法
			Console.WriteLine ("调用Class1静态方法,{0}",i);
			Console.WriteLine ();
		}

		public void InstanceFunction(int i)
		{//接受delegate委托的实例方法
			Console.WriteLine ("调用Class1实例方法,{0}",i);
		}


		public void CallDele(MyDelegate aDeleFunction)
		{//以delegate对象作为参数的方法
			Console.Write ("在Class1实例函数中:");
			aDeleFunction(100);
			Console.WriteLine ();
		}
	}
}

⌨️ 快捷键说明

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