我使用C#和Asp.Net Web表单。
我读到了Asp.Net使用“委托模型”处理GUI对象事件的方式。
我正在协调,如果有意义的话,在其他情况下使用“自定义委托类型”作为事件处理的一部分。
我的问题:
在现实世界中,除了事件处理之外,使用委托类型可能有用吗?示例:对于类中的验证字段?
在哪种架构中自定义代表类型最佳?
代表类型的优缺点?
感谢您抽出宝贵时间!
答案 0 :(得分:5)
如果您根本使用LINQ to Objects,那么您正在使用委托。 (如果您使用EF或类似的东西,那么您正在使用委托类型的表达式树。)
如果您使用MVC,您可能也使用表达式树(@Html.For(x => ...)
)
如果您开始使用线程或任务,您将使用代理。
基本上,它们非常适合以易于表达的方式表示单一操作。它们可以用作单方法接口的替代方法,并且可以很好地为自定义行为提供钩子而不是使用继承。
自.NET 3.5及其Action
和Func
委托系列以来,我很少创建自定义委托类型 - 只有在基于可读性的基础上这样做才有意义。