gpt4 book ai didi

c# - dot.Net 委托(delegate)有多少种方法?

转载 作者:行者123 更新时间:2023-12-02 21:16:55 24 4
gpt4 key购买 nike

我很好奇存在哪些委托(delegate)方法?例如,我知道异步方法调用,如下所示:

class Program {
// define a delegate
delegate int MyDelegate(String s);

static void Main(string[] args) {
// create the delegate
MyDelegate del = new MyDelegate(myMethod);

// invoke the method asynchronously
IAsyncResult result = del.BeginInvoke("foo", null, null);

// get the result of that asynchronous operation
int retValue = del.EndInvoke(result);

}
}

这里有“BeginInvoke()”和“EndInvoke()”方法,但是还有其他委托(delegate)方法吗?

最佳答案

所有委托(delegate)类型都派生自 System.Delegate (就像所有枚举类型派生自 System.Enum 一样),这意味着它们都拥有 this page 上的所有方法。

值得注意的是:

DynamicInvoke
GetInvocationList

Delegate 类型的static 方法非常有趣且完全值得了解(因为它可以将性能不佳的反射代码转换为 zippy 编译代码)是 CreateDelegate

另外:EqualsGetHashCode(是的,它们被覆盖)。

直到最近我才真正意识到 MethodTarget 属性,但我可以想象它们在某些特定上下文中非常有用。

关于c# - dot.Net 委托(delegate)有多少种方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3578932/

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