1. 程式人生 > >C# 簡單的委託

C# 簡單的委託

1.委託(其中一種寫法): 一個委託包含以下的方法1和方法2,一個方法1可對應多個方法2,方法2相當於引數,在實際呼叫的時候寫入不同的方法名即可 方法1:方法名(Action <引數1型別,引數2型別……>回撥),方法1宣告所委託方法的引數型別,方法1還應包含呼叫方法2的語句callback?.Invoke(引數1,引數2 …..)

方法2:方法名(引數型別引數1,引數型別引數2 ……)其中引數必須與方法1數量相同,對應型別相同

實際呼叫:在已經實現了方法1和方法2的前提下:方法1(方法2); 這種寫法的委託,一旦實際呼叫,會馬上進入方法1,執行方法1的過程中會呼叫方法2(callback),引數由方法1提供。

以下為試驗程式碼(輸出99乘法表): //方法1

MultiplicationTable(Action <int, int> callback)
        {
            for(int i = 1; i<= 9; i++)
            {
                for(int j = i; j <= 9; j++)
                {
                    callback.?Invoke(i, j);
                }
                Console.WriteLine();
            }
        }

//方法2

PrintMultiplicationTable(int a, int b)
        {
            Console.Write(a + " * " + b + " = " +(a * b).ToString().PadRight(2'')+" ");
        }

//實際呼叫:注意實際使用中可能要在方法1跟方法2前面加上類名或者物件名稱,這取決於你的方法1跟方法2

MultiplicationTable(PrintMultiplicationTable);

總結:委託實際上等於將方法2當做一個方法1的引數,動作相當於方法2的“類名”