委託又叫匿名函式, 首先我們來說為什麼要使用委託 ,委託到底是什麼 舉乙個例子
我想求煉表裡少於10的數的和,(getsum)
static int getsum(listlist)
}return sum;
}我又想求煉表裡所有奇數的和,那麼是否是又要寫乙個函式getsum2()來求呢
static int getsum2(listlist)
}return sum;
}到此大家有沒有覺得很繁瑣 如果要是 將n<10 n%2!=0封裝成引數多好,這樣就只用寫乙個函式就通過改變引數就可以實現 求不同元素標準的和了 委託就是為了實現這樣乙個目的 實現這樣的形式
getsum(listlist function function)
}return sum;
}舉乙個具體的例子
//定義委託
delegate bool function(int i);
//少於10的函式的委託
static function smallerthan10 = delegate (int i) ;
//求偶數的函式委託
static function oushu=delegate(int i);
static int getsum(listlist,function function)
}return sum;
}這樣求解集合list中小於10的元素的和 就變成下面這樣
var list = new list() ;
//實現了函式的封裝了吧
int sun=getsum(list,smallerthan10);
求元素是奇數的和 就變成下面這樣
int sum = getsum(list,oushu);
實現了函式的引數封裝 太棒啦
action是乙個 有引數無返回值的委託型別
static actionall;
//i表示引數
static actionaddprint = i => ;
static actionprint = delegate (int i) ;
在主函式中這樣寫
all=addprint;
all += print;
all(1);
列印出 2 1
多播委託就是將多個委託加入乙個委託鍊錶
C 委託,委託鏈,多播委託
委託 概念 委託是一種使用者自定義的型別.是一種類.可以把委託看成用來執行方法 函式的乙個東西 形式 delegate 函式返回型別 委託名稱 引數部分 例項化 委託型別 例項化名 new 委託型別 方法名稱 實現 usingsystem usingsystem.collections.generi...
C 多播委託
昨天第一次學到了多播委託,記錄一下最簡單的用法。顧名思義,多播委託就像廣播一樣,由乙個委託例項引用多個方法。通過 和 運算子實現對引用方法的增加和減少。1 static void main string args 211 public static void test1 1215 public st...
C 多播委託
乙個委託呼叫多個方法 例如 action a test1 a test2 增加乙個新方法,按順序執行,只能得到最後乙個方法的值 a test2 減去乙個方法 當a為空時會報錯,如果乙個方法出錯,其餘不會呼叫 取得乙個多播委託的所有方法 getinvocationlist 返回值為delegate 陣...