委託:將方法作為引數進行傳遞的時候,需要利用到委託。
如下例項(筆記):
class bubble}}
while (swpped);}}
class employee //員工工資表
public string name
public decimal money
public static bool com(employee e1, employee e2)=> e1.money < e2.money;
}static void main(string args)
;bubble.sort(em, employee.com);
foreach (var item in em)
}
輸出結果:
王五,10
李四,11
張三,12
趙柳,14
力氣,24
請按任意鍵繼續. . .
這個例子是將兩個類裡面的字段進行大小比較(工資),然後排序,返回乙個結果,因為不能直接用"<"比較類的大小,所以需要另寫乙個方法進行比較,在排序的時候將此方法傳入到排序方法裡面,就行了。
排序裡面的引數是陣列和委託,陣列就傳入職工類陣列,委託就傳入比較大小方法。
(想到自己以前有乙個類似的比較大小也是不能利用「<」比較,當時是在排序裡面直接呼叫的比較方法,沒有將方法進行引數的傳遞。對此有個疑問,為啥一定要將方法傳遞呢。)
根據以上的疑問,對**有進行了修改。修改之後發現,修改後的方法只能對乙個類進行排序。如果其他類也需要排序就需要寫乙個新的排序方法。
C 委託筆記
什麼是委託?宣告委託物件?建立委託物件?賦值委託?組合委託?為委託增加方法?從委託移除方法?呼叫委託?委託的例項?呼叫帶返回值的委託?呼叫帶引用的委託?匿名方法?lambda表示式?委託 有相同簽名和返回值型別的有序方法列表 1 方法的列表稱為呼叫列表 2 當委託被呼叫時,它呼叫列表中的每乙個方法 ...
C 筆記 委託
和類一樣,委託是使用者自定義的型別,但是類是資料和方法的集合,而委託是持有乙個或多個方法。delegate可以看做是乙個包含有序方法列表的物件,這些方法具有相同的簽名和返回型別。public delegate return type delegate name 關鍵字 返回型別 委託類簽名 引數列表...
C 「委託」學習筆記
using system using system.collections.generic using system.linq using system.text namespace delegatetest console.writeline sh3 jiang 組合委託,此時委託就能夠依次執行多...