Reading C#高級編程(第四版)……………………………………………………………………………………………………………………………………………………………
委託
C++中定義的函數指針,在C#中成了委託,委託是一個C#類型,派生自System.Delegate
定義:private delegate string GetAString();
使用:GetAString fMethord = new GetAStrin(x.ToString);
fMethor();//same as "x.ToString()"
匿名委託
delegate string delegateTest(string val);
delegateTest anonDel = delegate(string param)
{
param+=mid;
param+="add to string now.";
return param;
}
delegateTest anonDel = new delegateTest(param+=mid;);
多播委託
delegate string delegateTest(string val);
delegateTest oper = new delegateTest(ClassA.MultiplyByTwo);
oper+= new delegateTest(ClassB.MultiplyByTwo);
oper += oper1;
oper -= oper1;
事件其實使用委託實現的
評註:C#使用委託的方法實現了signal-slot技術,缺點是方式太單一不靈活