c# invoke委托如何傳遞參數(shù)

c#
小樊
125
2024-09-06 13:45:27

在C#中,使用Invoke方法調(diào)用委托時(shí),可以將參數(shù)作為Invoke方法的參數(shù)傳遞。這里有一個(gè)簡(jiǎn)單的示例,說(shuō)明如何創(chuàng)建一個(gè)委托,將其實(shí)例化,并使用Invoke方法傳遞參數(shù)。

首先,定義一個(gè)委托類型,該類型接受兩個(gè)整數(shù)參數(shù)并返回一個(gè)整數(shù):

public delegate int MyDelegate(int a, int b);

接下來(lái),創(chuàng)建一個(gè)方法,該方法將用于調(diào)用委托。這個(gè)方法接受兩個(gè)整數(shù)參數(shù),并返回它們的和:

public static int Add(int a, int b)
{
    return a + b;
}

現(xiàn)在,實(shí)例化委托并將Add方法分配給委托實(shí)例:

MyDelegate myDelegate = new MyDelegate(Add);

最后,使用Invoke方法調(diào)用委托并傳遞參數(shù):

int result = myDelegate.Invoke(3, 4);
Console.WriteLine("The result is: " + result); // 輸出 "The result is: 7"

這個(gè)示例展示了如何創(chuàng)建一個(gè)委托,將其實(shí)例化,并使用Invoke方法傳遞參數(shù)。當(dāng)然,你也可以使用更簡(jiǎn)潔的語(yǔ)法直接調(diào)用委托,而無(wú)需顯式使用Invoke方法:

int result = myDelegate(3, 4);
Console.WriteLine("The result is: " + result); // 輸出 "The result is: 7"

0