若 `ProcessNumber` 直接呼叫 `Console.WriteLine`、`listBox.Items.Add`,則:
namespace DelegateSample2
{
public delegate void ShowNumberDel(object[] items);
public class ProcessNumber
{
private readonly object[] _items;
public ProcessNumber(int max)
{
_items = new object[max];
for (int i = 0; i < max; i++) _items[i] = i;
}
// 接收委派,不關心具體實作
public void ProcessItems(ShowNumberDel show) => show(_items);
}
}

| 傳統硬編碼 | 委派注入 |
|---|---|
| 處理類別引用 UI 命名空間 | 處理類別零依賴 |
| 單一輸出方式 | 支援任意組合 |
| 難以測試 | 易於 Mock 驗證 |
| 違反 DIP | 符合依賴倒置原則 |