我是代理人概念的新手。我了解到它类似于 C++ 中的指针。在其优点中,它提到有效使用委托(delegate)可以提高性能。
考虑到它是一个指针。它如何提高应用程序的性能?
如果有人能用一个简单的例子来解释这一点,那将会很有帮助。
最佳答案
委托(delegate)不是直接提高性能——它们是关于抽象调用。在 C++ 术语中,它确实像一个方法指针。
委托(delegate)的大部分用途与性能无关。让我们从一开始就明确这一点。
然而,这可以用来帮助提高性能的一个主要时间是它允许像元编程这样的场景。代码(通常是库代码)可以在运行时根据配置信息构造复杂的行为链,然后通过Expression
、中的任何一个将该信息编译成方法TypeBuilder
或 DynamicMethod
(或基本上任何可让您构建 IL 的 API)。但是要调用这样一个动态生成的方法,您需要一个委托(delegate) - 因为从 C# 编译的静态 IL 不能引用不存在的方法时间。
请注意,另一种方法是使用 TypeBuilder
创建(在运行时)从子类继承或实现已知接口(interface)的新类型,然后动态创建生成的类型,可以以通常的方式转换为预期的 API 并正常调用。
关于c# - 委托(delegate)如何提高应用程序的性能?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20470480/