小屋創作

日誌2022-06-13 10:41

進階 C# 編程技術(一) 委託與事件

作者:Aucer

【C# 】委託與事件
by Aucer
(將往日所學到、使用的編程技術進行一個系統性的整理
方便自己在專案中使用時,能夠迅速的使用,若有錯誤,請多多指教)

【使用目的】
為什麼要用委託? 【因為它可以將各個模塊(.cs)進行隔離】
解偶各個模塊
避免直接調用其他模塊的方法
通過註冊(綁定)、移除註冊(解綁) 來控制方法的調用

【使用時機】
當在一個"方法"後,有"事件"(單複數皆可)要進行調度,但是"事件"的具體執行內容未定。
就可以把("事件")它當作方法的"行參(執行參數)",來進行定義。
ex: 遊戲開始,初始化時

定義時,以委託來表示。

【描述】
把委託當作是方法的一種抽象。
之後,調用時就可以從外部把方法傳遞進來。
主要是在設計程式架構時使用

【使用頻率】
主要用到四種(前兩者頻率較高)
Action  將方法當成參數調用。 定義、 註冊、 移除、 調用 (不支持返回值)
Func 支持綁定帶有返回值的方法(必須有返回值)
Delegate 帶或不帶返回值皆可
Event 對Delegate的封裝

【使用步驟】
1.定義好委託
2.綁定、解綁(移除綁定)關聯的方法
3.當委託調度(所有已綁定的關聯方法都會執行一次)

之後會在Unity中將Action、Func、Delegate、Event 分別做幾個範例。

1

0

LINE 分享

相關創作

5

近期一些的動畫觀看的心得

【血液】

留言

開啟 APP

face基於日前微軟官方表示 Internet Explorer 不再支援新的網路標準,可能無法使用新的應用程式來呈現網站內容,在瀏覽器支援度及網站安全性的雙重考量下,為了讓巴友們有更好的使用體驗,巴哈姆特即將於 2019年9月2日 停止支援 Internet Explorer 瀏覽器的頁面呈現和功能。
屆時建議您使用下述瀏覽器來瀏覽巴哈姆特:
。Google Chrome(推薦)
。Mozilla Firefox
。Microsoft Edge(Windows10以上的作業系統版本才可使用)

face我們了解您不想看到廣告的心情⋯ 若您願意支持巴哈姆特永續經營,請將 gamer.com.tw 加入廣告阻擋工具的白名單中,謝謝 !【教學】