C 委託和泛型

2022-08-21 07:24:08 字數 1151 閱讀 3309

委託定義:

委託是乙個類,它定義了方法的型別,使得可以將方法當作另乙個方法的引數來進行傳遞,這種將方法動態地賦給引數的做法,可以避免在程式中大量使用if-else(switch)語句,同時使得程式具有更好的可擴充套件性。

//

定義乙個委託

public

delegate

void eventhandler(dictionary dic);

我的理解:委託可以把方法當做引數傳遞給另乙個方法,這在非同步操作中非常常見

例如在js中,通過ajax獲取資料時需要傳遞乙個**函式

而c#屬於強型別語言,宣告函式引數時必須給定型別,所以這才有了委託

舉個栗子

//

定義乙個委託

public

delegate

void eventhandler(dictionarydic);

public

class

user

}

class

program

console.readline();

});}

}

什麼是泛型:

我們在編寫程式時,經常遇到兩個模組的功能非常相似,只是乙個是處理int資料,另乙個是處理string資料,或者其他自定義的資料型別,但我們沒有辦法,只能分別寫多個方法處理每個資料型別,因為方法的引數型別不同。有沒有一種辦法,在方法中傳入通用的資料型別,這樣不就可以合併**了嗎?泛型的出現就是專門解決這個問題的

簡而言之:泛型是一段**適配多種型別的解決方案

例如:獲取陣列中最大的值,陣列可能是 int陣列 string陣列...

class

program

;int maxnumber = getmax(arr, (n1, n2) =>);

string arr1 = new

string ;

string maxstring = getmax(arr1, (s1, s2) =>);

console.read();

}public

static t getmax(t arr ,maxdel)

}return

max;}}

c 泛型和委託

listlst new list listl lst.findall delegate t t 或使用linq private void button1 click object sender,eventargs e if mylist.find mathchar null else private...

C 委託三 泛型委託

今天一直在研究委託,因為有函式指標的基礎,還容易上手,但是對於一些概念和實踐,總是為了弄的非常清楚而糾結,這幾篇關於委託的文章我是結合 c 與.net4高階程式設計 msdn 借鑑其他人的博文來總結話語,以最直接簡潔的話來闡述清楚 在我弄懂之前網上的感覺都很模糊 namespace genericd...

C 泛型委託 Action Func

泛型委託實際上就是.net framework預定義的委託,基本涵蓋了所有常用的委託,所以一般不用使用者重新宣告。簡潔方便!無返回值的泛型委託 action系列泛型委託,是沒有返回引數的委託,呼叫的時候和普通的委託沒有宣告兩樣。示例 action test1 actiontest2 int x,do...