Skip to main content
 首页 » 编程设计

c#之何时在 Web 应用程序中使用委托(delegate)类型很有用

2024年02月03日28虾米姐

我使用 C# 和 Asp.Net Web Forms。

我了解了 Asp.Net 使用其“委托(delegate)模型”处理 GUI 对象事件的方式。

我同意在事件处理的其他上下文中使用“自定义委托(delegate)类型”是否有意义。

我的问题:

  • 在现实世界中,除了事件处理之外,什么时候使用委托(delegate)类型会有用?示例:对于类中的验证字段?

  • 在哪种架构中 Custom Delegate Type 最适合?

  • 代理类型的优缺点?

感谢您抽出宝贵时间!

请您参考如下方法:

  • 如果您完全使用 LINQ to Objects,那么您就是在使用委托(delegate)。 (如果您使用的是 EF 或类似的东西,那么您使用的是委托(delegate)类型的表达式树。)

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

  • 如果您曾经启动线程或任务,您将使用委托(delegate)。

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

自从 .NET 3.5 及其 Action 和 Func 委托(delegate)系列以来,我很少创建自定义委托(delegate)类型 - 基本上只有在考虑到可读性的情况下才这样做。