1.概念
匿名方法:提供了一種傳遞代碼作為委托參數(shù)的技術。匿名方法是沒有名稱只有主體的方法。
在匿名方法中您不需要指定返回類型,它是從方法主體內(nèi)的retrun語句推斷。
2.編寫匿名方法的語法
匿名方法是通過使用delegate關鍵字創(chuàng)建委托實例來聲明的。例如:
delegate void NumberChanger(int n);
NumberChanger nc = delegate(int x)
{
? ?? Console.WriteLine("Anonymous Method: {0}", x);
}
3.總結
委托可以通過匿名方法調(diào)用,也可以通過命名方法調(diào)用,即,通過向委托對象傳遞方法參數(shù)。請看如下完整例子:
using?System;
delegate?void?NumberChanger(int?n);
namespace?DelegateAppl
{
?class?TestDelegate
?{
?static?int?num?=?10;
?public?static?void?AddNum(int?p)
?{
num?+=?p;
? ? ? ? ? ? Console.WriteLine("Named Method: {0}", num);
?}
?public?static?void?MultNum(int?q)
?{
num?*=?q;
? ? ? ? ? ? Console.WriteLine("Named Method: {0}", num);
?}
?static?void?Main(string[]?args)
?{
?// 使用匿名方法創(chuàng)建委托實例
NumberChanger nc?=?delegate(int?x)
?{
? ? ? ? ? ? ? ?Console.WriteLine("Anonymous Method: {0}", x);
?};
?// 使用匿名方法調(diào)用委托
? ? ? ? ? ? nc(10);
?// 使用命名方法實例化委托
nc?=?new?NumberChanger(AddNum);
?// 使用命名方法調(diào)用委托
? ? ? ? ? ? nc(5);
?// 使用另一個命名方法實例化委托
nc?=?new?NumberChanger(MultNum);
?// 使用命名方法調(diào)用委托
? ? ? ? ? ? nc(2);
? ? ? ? ? ? Console.ReadKey();
?}
?}
}
以上摘自菜鳥教程