C#的一個特殊回調函數稱為委托,委托是定義方法簽名的類型,當需要將方法傳遞給其他方法時,就要使用委托,接下來武林技術頻道小編帶給大家總結C#中委托的基本用法,一起來了解吧!
原則:
1、委托本質就是個指針,一個函數指針,拿到函數的首地址即可;
C#的委托加了安全性,體現在對于函數指針所引用的函數指令塊的類型檢測,比如返回值,參數類型,參數個數
而C中的函數指針被賦值的時候(在C#中,就是委托實例化的時候,因為C#中后臺將委托處理成一個類了,封裝了哈)被賦予的值是否滿足類型的種種條件(返回值,參數類型,參數個數)不做檢查,由用戶給出保證,C#會編譯提示出來
2、委托實例化的過程,也就是委托對象構造的過程,從底層來講,即將一個現存的函數代碼指令塊的內存地址(靜態函數,實例的非靜態成員函數都行)賦值給這個委托;這個賦值過程,就是委托的構造函數要做的事情,所以,委托的構造函數一定有一個參數,這個參數在后臺讓系統處理,就是滿足類型檢查的函數指針,所要檢查的類型(返回值,參數類型,參數個數)都是在聲明定義委托的時候給出的。
3、委托實例化的兩種方法:
1) A a = new A(靜態方法名/實例.方法名);
2) A a = 靜態方法名/實例.方法名;
委托調用的兩種方法:
1)a.Invoke()
2)a()
用來構造委托的方法可以是靜態方法,也可以是實例化對象的成員函數,本質是這段代碼指令已經編譯出來,分配了內存了,傳遞給委托的參數(本質就是這塊指令數據的首地址)是有效的有意義的,從這個角度來理解,自然靜態方法,實例方法都能用來構造、建立委托實例的了
以上就是關于總結C#中委托的基本用法,相信這篇文章對于大家的編程之路有著很大的幫助,建議你好好收藏,更多的專業知識請來武林技術頻道的網站學習。
新聞熱點
疑難解答