delegate:和枚舉類似既可以定義在類裡面也可以在namespace下。 聲明:public delegate int Entrust(int x, int y); class MyMath { public int add(int x, int y) { return x + y; } pub ...
delegate:和枚舉類似既可以定義在類裡面也可以在namespace下。
聲明:public delegate int Entrust(int x, int y);
class MyMath { public int add(int x, int y) { return x + y; } public int sub(int x, int y) { return x - y; } }準備
使用:Entrust m =new Entrust(MyMath.add);註:靜態方法可以這樣用,否則請先創建MyMath的對象
多播委托:m+=MyMath.sub;註:對於有返回值的最好不用多播委托
匿名委托: e += delegate(int x, int y) { return x * y; };
Lambda:e += (x, y) => x / y;註:明天構建
系統預定義的常用泛型委托:
Func委托:有多種重載,delegate TResult Func<T1,T2,T3,T4,TResult>——Func<string,int> f = delegate(string x) { return 1; };註:泛型的最後一個參數為返回值類型
Action委托:相對於Func委托無返回值