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

Gib*_*boK 1 c# architecture delegates

我使用C#和Asp.Net Web窗体.

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

如果有意义的话,我正在协调使用"自定义委托类型"在其他上下文中作为事件处理的一部分.

我的问题:

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

  • 在哪种架构中Custom Delegate Type最好的脚?

  • 代表类型的优缺点?

谢谢你的时间!

Jon*_*eet 5

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

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

  • 如果你曾经开始线程或任务,你将使用代表.

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

由于.NET 3.5,其ActionFunc代表家庭,我很少创建自定义的委托类型-只有当它是有意义的可读性理由这样做,基本上是这样.