說到委託,大多數的程式設計人員可能都聽說過,甚至用過,可是能把委託說明白,別人也能聽明白的就不多了吧。這篇文章就由淺入深的介紹一下,委託到底是什麼。
委託是物件導向的標誌,物件導向**於現實世界,當然委託在現實世界中也是有原型的,比如:「小明,幫我買包菸」。這就是現實中的委託:『我』委託小明『買飯』。
物件導向是如何實現的呢?先來看一下委託的定義:
public delegate void buyfoodeventhandler();
public
代表委託是公有的,可訪問的;
delegate
是委託的關鍵字;
void
是委託的返回值型別;
buyfoodeventhandler
是委託的名稱,其中
eventhandler
微軟公司規定的命名標準,方法名稱加上字尾就是委託名稱。
好了,這就是乙個委託。我們把它和方法比較一下,它和方法的不同點就是:
1委託需要關鍵字標識;
2委託名稱需要以
eventhandler
結尾;3
委託沒有方法體;
4委託的返回值型別和委託方法的返回值型別一致。
接下來,我們使用**來實現委託小明買煙這個過程。
public class program
} public class xiaoming
}
bugticketeventhandler mydelegate = new bugticketeventhandler(mrzhang.buy
cigarate
);這句話是委託的宣告;括號內是委託的方法,這個方法一定要寫,因為它屬於委託的建構函式體,建構函式不能為空;
如果再讓小紅買一瓶水,如何實現呢?委託鏈可以解決這個問題,下面是委託鏈的介紹:
public class program
}public classxiaoming
} public classxiaohong
}
其實,我們只是在程式中加了
mydelegate += xiaohong.buywater;
;這樣就構成了委託鏈,實現了乙個委託可以實現多個方法。
這裡總結一下,委託其實就是方法的指標,可以把方法當做引數來使用,這樣可以大大的增加程式的靈活性和可擴充套件性。
c 委託到底是什麼,為麼需要委託
首先,我們來說說物件導向,所謂物件導向是對不同職階的地位物件的封裝,通俗的說就是專業的事情交給專業的人做 又比如在 fate 中具有七個職階,不同的職階都有其自己的專屬技能和所擅長的領域。然而,物件想學習新的技能就得繼承,繼承的弊端在於會使乙個類過於龐大而且有些方法,並不是我們現在的這個子類所需要的...
C 中的委託到底是什麼概念??
委託,簡單理解是這樣的.比如您要管您的孩子,把孩子送進了幼兒園.ok.此時您就把您的孩子委託給了幼兒園.當幼兒園放學,將孩子交還給您的手中.則是委託的 當然我這裡的例子是說非同步委託呼叫.您也可以同步.什麼是同步委託呼叫?您去銀行存錢.把錢給櫃員.他們幫你點鈔.存款然後給您存摺或卡.那麼您就相當於把...
敏捷到底是什麼?
文 ivar jacobson 在支援軟體工程 比如rational統一過程rup 與敏捷陣營 比如scrum或是xp 之間,人們一直存在著衝突。也不難理解,因為這兩種方法間都是在用著彼此並不相容的方式來描述的。其實大可不必,因為他們背後的觀點全然是相輔相成的。關鍵在於該如何用對兩者來說都公平的方式...