有三个函数:A(string),B(string),C(string)
现定义一个委托: Action<string> D;
D = A;
D = D + B;
D = D + C;
当执行D("my")时,三个都执行。但是,如何确定调用A、B、C三个中的哪个函数?
现定义一个委托: Action<string> D;
D = A;
D = D + B;
D = D + C;
当执行D("my")时,三个都执行。但是,如何确定调用A、B、C三个中的哪个函数?
delegate void StringHandler(); class Program
{
static void Main(string[] args)
{
StringHandler sh = FunA;
sh += FunB;
sh += FunC; Delegate[] funs = sh.GetInvocationList();
foreach (StringHandler item in funs)
{
if (item == FunA)
{
Console.WriteLine("執行方法 A");
item();
}
}
} static void FunA()
{
Console.WriteLine("A");
} static void FunB()
{
Console.WriteLine("B");
} static void FunC()
{
Console.WriteLine("C");
}
}
是连续执行A、B、C三个函数,不是仅执行A