国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發(fā)設計 > 正文

委托之多播委托淺談

2019-11-17 03:18:18
字體:
來源:轉載
供稿:網(wǎng)友

委托之多播委托淺談

+=運算符-=運算符學習到了多播委托了 ,現(xiàn)在來聊聊+=運算符 以及-=運算符 在之前的學習中 我們知道 +=運算符是用于自加運算的 ,但是 在 委托之中 ,+=運算符又有了新的含義 先看一個實例: 首先定義一個委托類型public delegate void del(int a,int b); 然后定義一個委托變量 : del 委托;好了 ,現(xiàn)在假設 我們有以下幾個方法要使用該類型的委托: 1)voidadd(int a,int b) { console.writeline(a+b); } 2) void minus(int a,int b) { console.writeline(a-b); } 3) void ride(int a,int b) { console.writeline(a*b); } 4) void divide (int a,int b) { console.writeline(a/b); }現(xiàn)在 ,我們想輸入兩個整數(shù)然后計算出它們 加減乘除 之后分別結果是多少 ,同時又要限定要使用委托輸出 , 這時你肯定想的是這樣吧: public static void send(int a,int b,del handler) { handler(a,b);}public static void main(string [] args){del delegate1=add;del delegate2=minus;del delegate3=ride;del delegate4=divide;sand(1,2,delegate1);sand(1,2,delegate2);sand(1,2,delegate3);sand(1,2,delegate4);console.readkey();}上述方法確實可行 ,但是,mian方法卻寫的有些太過于 繁瑣了 ,所以 這時使用多播委托就可以大大簡化 代碼,提高效率現(xiàn)在,main方法可以改寫成這樣:public static void mian(string [] args){del delegatesand=add;delegatesand+=minus;delegatesand+=ride;delegatesand+=divide;sand(1,2,delegatesand);console.readkey();}這樣以來就會簡化代碼 ,少申明變量 提高效率了也許,你看到這一段代碼時,你會奇怪,+=不會給delegatesand重新賦值嗎?但是我想說你的擔心是多余的,+=運算符,在我們之前的理解中,它具有賦值的作用,可這里為什么會與上邊的代碼 效果一樣,與你的想象不一致,其實,這里的+=運算符被重載了 ,不再是我們一般理解的:{ int a=0,b=1; a+=b;//此時,a變成了 1}在使用委托時,+=將會被重載,它的作用變成了在不影響已賦值委托變量的前提下,為已賦值的委托變量再次添加一個引用委托方法也就是說,每使用一次 +=運算符,委托變量就會被加入一個委托方法,比如原來 委托變量被賦值了,使用一次+=運算符后,委托變量也就同時作為兩個 委托方法的委托了 ,而且,它們運行的先后順序與添加的先后順序一致。同理,-=運算符在委托使用時其意義為,為現(xiàn)有的委托變量(已賦值)減去一個委托方法例如上例修改下main 方法public static void mian (string [] args){del delegatesand=add;del delegatesand+=minus;del delegatesand+=ride;del delegatesand+=dividel;sand(1,2,delegatesand);console.writeline("---------------------");delegatesand-=add;sand(1,2,delegatesand);console.readkey();}輸出結果: 3 -1 2 0------------------- -1 2 0 第二次的結果中沒有了 add()方法的運算結果這就是-=運算符的作用。


發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 蕉岭县| 达孜县| 璧山县| 武隆县| 桂平市| 惠水县| 高唐县| 新绛县| 夏津县| 来宾市| 康保县| 鹤山市| 大同市| 肥西县| 樟树市| 仁怀市| 左贡县| 凭祥市| 新泰市| 通道| 通河县| 佳木斯市| 连云港市| 金乡县| 博爱县| 阳曲县| 南漳县| 会泽县| 榆林市| 镶黄旗| 榆树市| 衡东县| 仪陇县| 金阳县| 眉山市| 集安市| 甘孜县| 双城市| 泾阳县| 故城县| 北碚区|