Invoke 語法模板

符號 描述 範例程式碼 說明
Invoke 調用委派指向的方法 csharp<br>MyDelegate myDelegate = (x, y) => x + y;<br>int result = myDelegate.Invoke(5, 10);<br> 使用 Invoke 方法來執行委派,並傳遞參數。
BeginInvoke 異步調用委派 csharp<br>myDelegate.BeginInvoke(5, 10, callback, state);<br> 開始異步調用委派,可以在調用完成後執行回調方法。
EndInvoke 結束異步調用 csharp<br>int result = myDelegate.EndInvoke(asyncResult);<br> 結束異步調用,獲取返回值和處理任何引發的例外。
Action 委派不返回值的方法 csharp<br>Action<string> greet = name => Console.WriteLine($"Hello, {name}!");<br>greet("World");<br> Action 可以用來定義不返回值的方法,最多可有 16 個參數。
Func 委派返回值的方法 csharp<br>Func<int, int, int> multiply = (x, y) => x * y;<br>int result = multiply(5, 10);<br> Func 可以用來定義有返回值的方法,最多可有 16 個參數。
Predicate 委派返回布林值的方法 csharp<br>Predicate<int> isEven = num => num % 2 == 0;<br>bool result = isEven(4);<br> Predicate 用於測試某個條件,返回 truefalse

C# ArrayList

符號 描述 範例程式碼 說明
ArrayList 一個動態大小的陣列集合類型 csharp<br>ArrayList list = new ArrayList();<br>list.Add(1);<br>list.Add("hello");<br> ArrayList 是非泛型集合,可以存放任何類型的物件。
Add 將元素添加到 ArrayList csharp<br>list.Add(100);<br> 添加元素到 ArrayList 的末尾,無需指定大小。
Remove 移除指定的元素 csharp<br>list.Remove(100);<br> 移除第一個符合指定值的元素。
RemoveAt 根據索引移除元素 csharp<br>list.RemoveAt(0);<br> 移除指定索引位置的元素。
Count 獲取 ArrayList 中的元素數量 csharp<br>int count = list.Count;<br> 返回 ArrayList 中元素的數量。
Contains 判斷是否包含指定元素 csharp<br>bool exists = list.Contains("hello");<br> 檢查 ArrayList 是否包含某個元素。
IndexOf 獲取指定元素的索引 csharp<br>int index = list.IndexOf(1);<br> 返回元素第一次出現的索引,找不到則返回 -1。

C#Hashtable

符號 描述 範例程式碼 說明
Hashtable 鍵值對的集合 csharp<br>Hashtable hashtable = new Hashtable();<br>hashtable.Add("key1", "value1");<br> Hashtable 是一個非泛型集合,用於儲存鍵值對。
Add 添加鍵值對 csharp<br>hashtable.Add("key2", "value2");<br> 將指定的鍵和值添加到 Hashtable 中。
Remove 移除指定鍵的鍵值對 csharp<br>hashtable.Remove("key1");<br> 移除指定鍵及其對應的值。
Contains 判斷是否包含指定鍵 csharp<br>bool exists = hashtable.Contains("key2");<br> 檢查 Hashtable 是否包含某個鍵。
Count 獲取 Hashtable 中的鍵值對數量 csharp<br>int count = hashtable.Count;<br> 返回 Hashtable 中鍵值對的數量。
Keys 獲取所有鍵 csharp<br>ICollection keys = hashtable.Keys;<br> 返回 Hashtable 中所有鍵的集合。
Values 獲取所有值 csharp<br>ICollection values = hashtable.Values;<br> 返回 Hashtable 中所有值的集合。
DictionaryEntry 存放鍵值對的結構 csharp<br>DictionaryEntry entry = new DictionaryEntry("key", "value");<br> 表示 Hashtable 中的一個鍵值對,包含 KeyValue 屬性。
Key 獲取鍵 csharp<br>var key = entry.Key;<br> 獲取 DictionaryEntry 中的鍵。
Value 獲取值 csharp<br>var value = entry.Value;<br> 獲取 DictionaryEntry 中的值。

C# 的委派(Delegate)是一種特殊的類型,用來持有對方法的引用。它可以存儲和調用一個或多個方法,類似於指標(在其他語言中)的概念,但更加安全。

基本用法

委派的作用是允許方法作為參數傳遞或動態地選擇要執行的方法。宣告時,你需要指定方法的返回類型和參數,然後可以分配符合該簽名的方法。

委派的定義與使用

  1. 定義委派

    public delegate int MyDelegate(int x, int y);
    
    
  2. 將方法綁定到委派

    public class Example
    {
        public int Add(int a, int b)
        {
            return a + b;
        }
    }
    
    // 使用委派
    Example example = new Example();
    MyDelegate del = new MyDelegate(example.Add);
    int result = del(3, 4);  // 調用Add方法,result會是7
    
    
  3. 多播委派 委派可以同時指向多個方法,並在調用時依序執行它們。

    MyDelegate del = new MyDelegate(example.Add);
    del += example.Subtract;  // 可以新增更多的方法
    
    

委派的應用場景

這些都是常見的委派用途。