一、委托的簡介
1、委托的聲明:
<access modifier> delegate <returnType> HandlerName ([parameters])
例如:
public delegate void PrintHandler(string str);
委托聲明定義了一種類型,它用一組特定的參數以及返回類型來封裝方法。對於靜態方法,委托對象封裝要調用的方法。對於實例方法,委托對象同時封裝一個實例和該實例上的一個方法。如果您有一個委托對象和一組適當的參數,則可以用這些參數調用該委托。
2、委托的使用:
using System;
public class MyClass
{
public static void Main()
{
PrintStr myPrinter = new PrintStr();
PrintHandler myHandler = null;
myHandler += new PrintHandler(myPrinter.CallPrint); // 將委托鏈接到方法,來實例化委托
if(myHandler!=null)
myHandler("Hello World!"); // 調用委托,相當於匿名調用委托所鏈接的方法
Console.Read();
}
}
public delegate void PrintHandler(string str); // 聲明委托類型
public class PrintStr
{
public void CallPrint(string input)
{
Console.WriteLine(input);
}
}
在C#中使用委托方法:
· 創建委托所使用的方法必須和委托聲明相一致(參數列表、返回值都一致)
· 利用 +=、-=來進行委托的鏈接、取消鏈接或直接使用Delegate.Combine和Delegate.Remove方法來實現
· 可以使用MulticastDelegate的實例方法GetInvocationList()來獲取
[1] [2] [3] [4] [5] [6] [7] [8] [9] [10] ... 下一頁 >>