代表们如何改进应用程序的性能?

时间:2013-12-09 12:17:11

标签: c# asp.net delegates

我是代表们的新概念。我已经知道它类似于C ++中的指针。在其优势方面,它提到有效使用代表可以提高性能。

考虑到它是一个指针。它如何改善应用程序的性能?

如果有人能用一个简单的例子来解释这一点,那将会有所帮助。

3 个答案:

答案 0 :(得分:4)

代表们不是直接关于提高性能 - 它们是关于抽象调用的。用C ++术语来说,它确实就像一个方法指针。

代表的大部分用途与效果无关。让我们从一开始就明确这一点。

然而,这可以用来帮助提高性能的一个主要时间是,它允许像元编程这样的场景。代码(通常是库代码)可以根据运行时的配置信息构建复杂的行为链,然后通过ExpressionTypeBuilder中的任何一个将该信息编译成方法或DynamicMethod(或基本上任何允许您构建IL的API)。但是要调用这样一个动态生成的方法,你需要一个委托 - 因为从C#编译的静态IL不能引用不存在的方法 at时间。

请注意,执行此操作的另一种方法是使用TypeBuilder创建(在运行时)从子类继承的新类型或实现已知接口,然后创建动态生成类型的实例,可以通常的方式强制转换为预期的API并正常调用。

答案 1 :(得分:2)

答案 2 :(得分:2)

代表对您的申请表现没有重大的正面或负面影响。它们提供的是将应用程序的各个方面相互分离的方法。

假设您遇到班级A拨打B.foo()的情况。 A现已部分与B相关联。然后,您可能会遇到B需要致电A.bar()的情况。你现在冒险将两者紧密结合在一起。如果不是将A公开给B,而是提供bar作为委托,那么您已删除了该耦合。