【问题标题】:C# method definition is too complicated [closed]C#方法定义太复杂[关闭]
【发布时间】:2014-08-27 14:32:08
【问题描述】:

当我查看 MVC 库中 EditorFor 方法的文档时,我发现了这个方法定义:

public static MvcHtmlString EditorFor<TModel, TValue> {
    this HtmlHelper<TModel> html,
    Expression<Func<TModel, TValue>> expression,
    Object additionalViewData
}

这对我来说很难理解,但我认为 HTML 助手可能会有所帮助,所以我想理解并且我也想弄清楚它的逻辑,以便我可以在其他方法定义中使用它。如果您能提供帮助,我将不胜感激。

编辑:如何正确使用此方法定义?

【问题讨论】:

  • 您已经知道/不知道什么?具体来说,您需要帮助理解什么?
  • 你知道扩展方法吗?那应该解释“方法的这个 HtmlHelper html 部分。
  • 方法定义怎么会太复杂?你有什么不明白的?或者你可以browse the source code for that method if it helps...
  • 你读过this吗?
  • 所以我应该给它一个类作为参数,然后用这个类返回一个对象

标签: c# asp.net-mvc extension-methods method-declaration


【解决方案1】:

这是一种扩展方法(这就是您看到thisstatic 的原因)。它需要两个泛型类型 (&lt;TModel, TValue&gt;),您必须在调用该方法时指定它们,以便它们可以在整个过程中使用/引用(包括其他参数,例如 HtmlHelper&lt;TModel&gt;)。此方法将返回一个 MvcHtmlString 类型的对象。

这是您可以从签名中收集到的全部信息。它实际上做了什么和/或它是如何做的只能从它的内容中得知。

阅读:

扩展方法:

http://msdn.microsoft.com/en-GB/library/bb383977.aspx

泛型:

http://msdn.microsoft.com/en-us/library/ms379564(v=vs.80).aspx

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-06-06
    相关资源
    最近更新 更多