委託的用途

2021-06-25 18:56:34 字數 1455 閱讀 2516

對乙個陣列進行排序演算法,使用氣泡排序演算法,**如下:

int sortarray = ;

//氣泡排序

do}

但這僅僅是對int型資料進行排序。

如果還需要對其他自定義型別的資料進行排序,那麼上述**中的if(sortarray[i]

>sortarray[i+1])就有問題了,因為它需要比較陣列中的兩個物件,看哪個更大。對int 可以這樣比較,但是如何對沒有實現」<」運算子的新類進行比較呢?

這時,便可以使用委託,在委託中傳遞乙個封裝的方法,這個方法可以進行比較,另外,不給變數temp使用int型別,而是使用泛型。

對於接受型別t的泛型方法sort(),需要乙個比較方法,其兩個引數的型別是t,if比較的返回方法是布林型別。這個方法可以從func委託中引用,其中,t1,t2型別相同:func。

給sort方法指定下列簽名:

static public void sort(ilistsortarray,funccomparison)

定義bubblesorter類,如下:

class bubblesorter}}

}

為了使用這個類,我們定義另乙個類,從而建立排序陣列。

class employee

public string name

public decimal salary

public override string tostring()

,",name,salary);

}public static bool comparesalary(employee e1,employee e2)

}

為了匹配func,這個類必須定義comparesalary,它的引數必須是兩個employee引用,並返回乙個布林值。

下列是主函式**:

class program

;bubblesorter.sort(employees,employee.comparesalary);

foreach(employee eein employees)

}}

執行這段**,可得到如下結果:

c,¥500.00

a,¥300.00

b,¥200.00

e,¥200.00

d,¥100.00

當排序型別為int型時,**如下:

class program

;bubblesorter.sort(ar,comparesalary);

foreach(int eein ar)

}public static bool comparesalary(int e1,int e2)

}

C 委託 怎樣理解C 中「委託」的含義和用途

下面是的回答 我是這樣理解的 委託是對方法的引用,相當於方法的別名,也就是說委託與方法具有相同的行為。委託變數說白了就是接受方法名作為引數的變數,當我們使用這個委託變數的時候就相當於呼叫了這個方法。我也感覺 委託 就是方法別名,或者呼叫別人的方法時,不用原來的方法名,可以自己起乙個有意義的名字 聯想...

手機的用途

除了打 以外,你的手機還能做4件事情,你以前不一定知道一些緊急情況下的自救 辦法原來手機還有這樣的用途!尤其是第三種 除了打 以外,你的手機還能做4件事情,你以前不一定知道 我們可能或多或少的知道一些緊急情況下的自救辦法,但你可能不知道你的手 機在緊要關頭也能救你一命。看看下面的內容了解下你的手機能...

手機的用途

除了打 以外,你的手機還能做4件事情,你以前不一定知道一些緊急情況下的自救 辦法原來手機還有這樣的用途!尤其是第三種 除了打 以外,你的手機還能做4件事情,你以前不一定知道 我們可能或多或少的知道一些緊急情況下的自救辦法,但你可能不知道你的手 機在緊要關頭也能救你一命。看看下面的內容了解下你的手機能...