何时在Web应用程序中使用委托类型很有用

时间:2011-07-14 05:20:30

标签: c# architecture delegates

我使用C#和Asp.Net Web表单。

我读到了Asp.Net使用“委托模型”处理GUI对象事件的方式。

我正在协调,如果有意义的话,在其他情况下使用“自定义委托类型”作为事件处理的一部分。

我的问题:

  • 在现实世界中,除了事件处理之外,使用委托类型可能有用吗?示例:对于类中的验证字段?

  • 在哪种架构中自定义代表类型最佳?

  • 代表类型的优缺点?

感谢您抽出宝贵时间!

1 个答案:

答案 0 :(得分:5)

  • 如果您根本使用LINQ to Objects,那么您正在使用委托。 (如果您使用EF或类似的东西,那么您正在使用委托类型的表达式树。)

  • 如果您使用MVC,您可能也使用表达式树(@Html.For(x => ...)

  • 如果您开始使用线程或任务,您将使用代理。

基本上,它们非常适合以易于表达的方式表示单一操作。它们可以用作单方法接口的替代方法,并且可以很好地为自定义行为提供钩子而不是使用继承。

自.NET 3.5及其ActionFunc委托系列以来,我很少创建自定义委托类型 - 只有在基于可读性的基础上这样做才有意义。