技術文章
技術問答
My Project
iT 徵才
聊天室
2026 鐵人賽
登入/註冊
文章
問答
Tag
邦友
鐵人賽
搜尋
2026 iThome 鐵人賽
DAY
12
0
自我挑戰組
學習C#續
系列 第
12
篇
Day 12:委派(Delegate)、委派與代理人、Lambda運算式(Lambda Expression)
18th鐵人賽
413570622
2026-09-25 19:28:49
66 瀏覽
分享至
認識委派(Delegate):
委派是一種指向方法(函數)的型別安全指標(Type-Safe Function Pointer)。
它定義了方法的「簽章」(回傳型別與參數清單)。只要簽章相符的方法,都能被指定給該委派變數。
內建通用委派:
Action:代表無回傳值(void)的方法(可帶 0 到 16 個參數)。
Func<T, TResult>:代表有回傳值的方法(最後一個型別參數為回傳型別)。
Predicate:固定回傳 bool 的委派,常用於條件判斷。
委派與「代理人」:
在概念上,委派就像現實中的「代理人」或「委任書」。呼叫端不需要親自執行該任務,而是將任務指派給委派物件,由委派在適當時機代為執行。
多點傳播(Multicast Delegate):一個委派可透過 += 綁定多個方法,執行時會依序觸發所有被委託的方法;亦可透過 -= 解除綁定。
Lambda 運算式(Lambda Expression):
一種用來撰寫匿名方法的精簡語法,使用 =>(前往 / 讀作 goes to)運算子。
語法結構:(輸入參數) => 運算式或陳述式區塊。
編譯器具備型別推導能力,因此大多數情況下參數型別可省略不寫。
大幅簡化程式碼,不必為了傳遞簡單的運算邏輯而額外宣告一個完整方法。
實作範例
留言
追蹤
檢舉
上一篇
Day 11:System.Collections.Generic 命名空間、索引鍵/值對集合、使用索引的集合、循序存取的集合
下一篇
Day 13:例外狀況的處理
系列文
學習C#續
共
30
篇
目錄
RSS系列文
訂閱系列文
1
人訂閱
26
Day 26: 物件導向設計原則(SOLID)與控制台架構思維
27
Day 27: 單元測試實戰(Unit Testing)
28
Day 28: 綜合實作專案(一):Console 系統架構與選單設計
29
Day 29: 綜合實作專案(二):資料庫串接、LINQ 統計與非同步匯出
30
Day 30: 專案重構、全域例外防護與 30 天學習結業回顧
完整目錄
熱門推薦
{{ item.subject }}
{{ item.channelVendor }}
|
{{ item.webinarstarted }}
|
{{ formatDate(item.duration) }}
直播中
立即報名
尚未有邦友留言
立即登入留言
iThome鐵人賽
參賽組數
929
組
團體組數
32
組
累計文章數
20316
篇
完賽人數
534
人
看影片追技術
看更多
{{ item.subject }}
{{ item.channelVendor }}
|
{{ formatDate(item.duration) }}
直播中
熱門tag
15th鐵人賽
16th鐵人賽
13th鐵人賽
18th鐵人賽
17th鐵人賽
14th鐵人賽
12th鐵人賽
11th鐵人賽
鐵人賽
2019鐵人賽
javascript
2018鐵人賽
python
2017鐵人賽
windows
php
c#
linux
windows server
css
熱門問題
請教關於 codex 的 Computer use(電腦操控功能)是一定要安裝外掛程式還是本身就自帶呢?
熱門回答
請教關於 codex 的 Computer use(電腦操控功能)是一定要安裝外掛程式還是本身就自帶呢?
熱門文章
Claude 值不值得付費?訂閱費與 API 帳單的 2026 年 10 月實測
Claude code 新手篇 10: CLAUDE.md、Memory、Skill 差在哪?讓 Claude 每次照同一套做事
如何利用 FortiGate 來保護使用了 PHP 的服務
【Day 25】知識庫 RAG 導入:Dify Knowledge Base 打造具備專案背景上下文的智慧 Agent
数据库连接原理:JDBC、MyBatis-Plus、GORM、PHP、Python、C++
IT邦幫忙
×
標記使用者
輸入對方的帳號或暱稱
Loading
找不到結果。
標記
{{ result.label }}
{{ result.account }}