significado reservadas pasar parametros palabras objetos metodos metodo mandar llamar funciones como c# extension-methods html-helper

reservadas - params c#



¿Qué significa ''esta'' palabra clave en un parámetro de método? (2)

Así es como funcionan los métodos de extensión en C #. La función de métodos de extensión le permite ampliar los tipos existentes con métodos personalizados. La palabra clave this [TypeName] en el contexto de los parámetros del método es el type que desea extender con sus métodos personalizados, this se usa como un prefijo, en su caso, HtmlHelper es el type a extender y BeginForm es el método que debería extiéndelo.

Eche un vistazo a este método de extensión simple para el tipo de string :

public static bool BiggerThan(this string theString, int minChars) { return (theString.Length > minChars); }

Puedes usarlo fácilmente en un objeto de string :

var isBigger = "my string is bigger than 20 chars?".BiggerThan(20);

Referencias:

Esta pregunta ya tiene una respuesta aquí:

namespace System.Web.Mvc.Html { // Summary: // Represents support for HTML in an application. public static class FormExtensions { public static MvcForm BeginForm(this HtmlHelper htmlHelper, string actionName, string controllerName); ... } }

Me he dado cuenta de que el objeto ''este'' delante del primer parámetro en el método BeginForm no parece ser aceptado como un parámetro. Parece que en los métodos reales de BeginForm funcionan como:

BeginForm(string actionName, string controllerName);

omitiendo el primer parámetro. Pero en realidad recibe ese primer parámetro de alguna manera de manera oculta. ¿Me puede explicar cómo funciona esta estructura? En realidad estoy explorando MVC 4 Internet Sample. Gracias.


Métodos de extensión:

Un "perno en" forma de extender un tipo existente. Le permiten extender un tipo existente con una nueva funcionalidad, sin tener que subclasificar o recompilar el tipo anterior. Por ejemplo, le gustaría saber si una determinada cadena fue un número o no. O es posible que desee tener la función Mostrar () Ocultar () en los formularios Web de ASP.net para los controles.

Por ejemplo:

public static class MyExtensionMethods { public static void Show(this Control subject) { subject.Visible = true; } public static bool IsNumeric(this string s) { float output; return float.TryParse(s, out output); } }

Edición: Para obtener más información, puede ver la documentación de MSDN en: msdn.microsoft.com/en-us/library/vstudio/bb383977.aspx que amablemente se vinculó con @aush.

Disfruté leyendo "C # en profundidad" sobre los métodos de extensión. Hay un extracto disponible aquí: http://my.safaribooksonline.com/book/programming/csharp/9781935182474/extension-methods/ch10lev1sec3

Por supuesto, puede comprar el libro en línea o simplemente hacer una investigación sobre cómo funciona todo bajo el capó utilizando Google.