C# 簡單的委託
阿新 • • 發佈:2018-12-09
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的“類名”