最佳答案
根据这个问题—— 使用 C # 作为参数的传递方法和我的一些个人经验,我想知道更多关于调用委托与仅仅在 C # 中调用方法的性能的信息。
虽然委托非常方便,但是我有一个应用程序通过委托做了很多回调,当我们重写这个应用程序使用回调接口时,我们得到了数量级的速度提升。这是和。NET 2.0,所以我不知道3和4是如何改变的。
在编译器/CLR 内部如何处理对委托的调用,以及这如何影响方法调用的性能?
EDIT -阐明我所说的委托与回调接口的区别。
对于异步调用,我的类可以提供一个 OnComplete 事件和相关的委托,调用者可以订阅这些事件和委托。
或者,我可以用调用方实现的 OnComplete 方法创建一个 ICallback 接口,然后用类注册自己,该类将在完成时调用该方法(即 Java 处理这些事情的方式)。