C#委託與C語言函數指針及函數指針數組數組
在使用C#時總會爲委託而感到疑惑,但如今總新溫習了一遍C語言後,才真正理解的委託。函數
其實委託就相似於C/C++裏的函數指針,在函數傳參時傳遞的是函數指針,在調用的時候經過指針訪問這個函數。學習
在C語言中函數指針的申明以下:spa
//能夠理解爲申明一個指着變量 Func ,它的類型是 返回Type(能夠爲 void )類型的參數,接收 (Type one,Type two,...)類型的
//參數(能夠不接受參數)。 Type *Func(Type one,Type two,...)
在C語言中函數指針數組申明以下:指針
//相似於上面的理解,申明一個Func 指針數組,它的長度爲num ,它的類型爲 int ()(Type one,Type two,...)類型 Type (*Func[num])(Type one,Type two,...)
在函數中做爲參數傳遞:code
//在使用函數 TestFunc 時,須要傳一個具備相同的類型申明( Type ()(Type one,Type two,...) )的函數過來,這
//樣就能夠使得函數更靈活,能根據具體的需求傳入相應的函數來使得代碼的重用性增長。 Type TestFunc(Type value1,Type value2,Type *Func(Type one,Type two,...)) { Func(value1,value2,...); }
雖然說在C#裏沒有指針(其實是有的),但深刻理解指針的概念與用法對C#的學習仍是頗有用的。blog