Search code examples
c#asp.net-mvcextension-methodsmethod-declaration

C# method definition is too complicated


When I looked at the documentation of the EditorFor method from the MVC library I came across this method definition :

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

It felt hard to understand for me but I think HTML helpers can be helpful so I want to understand and I also want to figure out its logic so that I can use it in other method definitions. I would be appreciated if you can help.

Edit: What can be a proper use of this method definition?


Solution

  • This is an extension method (which is why you see this and static). It takes two generic types (<TModel, TValue>) which you must specify on invoking the method, so that they can then be used/referred to throughout (including the other parameters e.g. HtmlHelper<TModel>). This method will return an object of type MvcHtmlString.

    This is all you can gather from a signature. What it actually does and/or how it does it can only be told from it's contents.

    Reading:

    Extension methods:

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

    Generics:

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