gpt4 book ai didi

c# - 为什么一些 HtmlHelper 方法实现为扩展方法

转载 作者:行者123 更新时间:2023-11-30 14:43:22 28 4
gpt4 key购买 nike

我目前正在创建一些自定义帮助程序类,类似于 ASP.NET MVC 的标准 HtmlHelper。当我查看 HtmlHelper 的实现时,我注意到大多数/所有 HTML 生成方法(例如 ActionLink()BeginForm()TextBox() 等)不直接在 HtmlHelper 类中实现,而是作为单独类中的扩展方法(例如在 class LinkExtensions 中)实现。

除了更好的源代码组织之外,在实现扩展方法而不是普通方法时还有什么优势吗?

在创建自己的帮助类时,我是否也应该遵循该模式?

更新:当我写到我想创建自己的助手类时,我的意思是扩展现有的 HtmlHelper 类。相反,我为我的 View 创建了一个自定义基类(派生自 ViewPage),我想在那里添加一个类似于 ViewPage 的 Html 和 Url 帮助器类的额外帮助器类。

最佳答案

原因是:我们希望为您提供选择退出任何内置 HTML 帮助器的能力,以防您更愿意编写自己的帮助器或使用其他一些第 3 方帮助器。如果它们不是特殊命名空间中的扩展方法,您将无法忽略它们。

关于c# - 为什么一些 HtmlHelper 方法实现为扩展方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2064007/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com