1、什么是委托
委托可以理解為持有一個或多個方法的對象。如果執行委托的話,委托會
執行它所"持有"的方法。委托可以避免程序中大量使用if-else語句,使
程序擁有更好的擴展性。
2、委托的本質
委托和類一樣,是一種用戶自定義的類型,但類表示的是數據和方法的集合,
而委托則持有一個或多個方法,以及一系列預定義的操作。
3、如何聲明委托
delegate void MyDel(int x)
說明:delegate 作為委托關鍵字,沒有方法主體
4、什么是多播委托?
可以把多個方法賦值給同一個委托,或者將多個方法綁定到同一個委托,
就是多播委托。
5、一個簡單的委托demo:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace SimpleDelegateDemo
{
class Program
{
static void Main(string[] args)
{
Class1 c2 = new Class1();
c2.MethodUseDelegate(); ? ? //調用方法
}
}
class Class1
{
public ?delegate void SimpleDelegate(); ? ? ?//定義一個委托
SimpleDelegate delegateMethod = UseMethod; ? //將方法傳遞給定義的另一個方法(委托)
public void MethodUseDelegate()
{
Class1 c1 = new Class1();
c1.delegateMethod(); ? ? ? ? ? ? ? ? ? ?//將傳遞賦值的委托當做方法調用
//SimpleDelegate+=c1.UseMethod2 //綁定第二個方法
//SimpleDelegate-=c1.UseMethod2 //移除第二個方法
}
public static void UseMethod()
{
Console.WriteLine("一個簡單委托列子");
Console.ReadKey();
}
public static void UseMethod2()
{
Console.WriteLine("一個簡單委托列子2");
Console.ReadKey();
}
}
}
原文