gpt4 book ai didi

c# - Func<> 和原始代码

转载 作者:太空宇宙 更新时间:2023-11-03 18:46:26 25 4
gpt4 key购买 nike

有谁知道 Func 和 Action 指针的源代码是如何声明的?我试图了解使用委托(delegate)进行异步调用背后的理论以及它与线程的关系。

例如,如果我有以下代码:

    static void Main()
{
Func<string, int> method = Work;
IAsyncResult cookie = method.BeginInvoke ("test", null, null);
//
// ... here's where we can do other work in parallel...
//
int result = method.EndInvoke (cookie);
Console.WriteLine ("String length is: " + result);
}

static int Work (string s) { return s.Length; }

我将如何使用“委托(delegate)”类型来替换 Func<> 结构;我想弄清楚的原因是因为 Func 只能接受一个输入和一个返回变量。它不允许在它指向的方法中具有设计灵 active 。

谢谢!

最佳答案

Func<T>没什么特别的,真的。很简单:

public delegate T Func<T>();

事实上,为了支持不同数量的参数,声明了一堆参数,例如:

public delegate void Action();
public delegate void Action<T>(T arg);
public delegate U Func<T, U>(T arg);
// so on...

关于c# - Func<> 和原始代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4104983/

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