gpt4 book ai didi

c# - 如何在运行时提取多播委托(delegate)的结果?

转载 作者:行者123 更新时间:2023-11-30 17:14:47 25 4
gpt4 key购买 nike

不确定这是否可行,但我想知道如何捕获分配给同一委托(delegate)(多播)的两个方法的返回值。我基本上想知道是否有办法捕获每个返回值?也许我必须对其进行迭代,不太确定..

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace MutiCastDelegate2
{
class Program
{

delegate string HelloWorldDelegate();

static void Main(string[] args)
{
HelloWorldDelegate myDel1 = ReturnHelloWorld;
HelloWorldDelegate myDel2 = ReturnHelloWorld2;
HelloWorldDelegate myMultiDelegate = myDel1 + myDel2;

Console.WriteLine(myMultiDelegate());
Console.ReadLine();
}


public static string ReturnHelloWorld()
{
return "Return Hello World";
}

public static string ReturnHelloWorld2()
{
return "Return Hello World 2";
}
}
}

最佳答案

您可以使用 MulticastDelegate.GetInvocationList()要访问列表中的每个委托(delegate),您只需调用每个委托(delegate)并检索结果:

var delegates = myMultiDelegate.GetInvocationList();
foreach (var d in delegates)
{
string result = (string) d.DynamicInvoke();
}

关于c# - 如何在运行时提取多播委托(delegate)的结果?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8432286/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com