Hemos mejorado nuestra respuesta con detalle explanation.Now que es más fácil de entender sobre el método de extensión
Extension method: Es un mecanismo a través del cual podemos extender el comportamiento de la clase existente sin necesidad de utilizar la sub o classing modificando o recompilando la clase o estructura original.
Podemos extender nuestras clases personalizadas, clases de .NET Framework etc.
método de extensión
es en realidad un tipo especial de método estático que se define en la clase estática.
Como DateTime
la clase ya está tomada arriba y por lo tanto no hemos tomado esta clase para la explicación.
A continuación se muestra el ejemplo
// Esta es una clase Calculadora existente, que tiene sólo un método (Añadir)
public class Calculator
{
public double Add(double num1, double num2)
{
return num1 + num2;
}
}
// Below is the extension class which have one extension method.
public static class Extension
{
// It is extension method and it's first parameter is a calculator class.It's behavior is going to extend.
public static double Division(this Calculator cal, double num1,double num2){
return num1/num2;
}
}
// We have tested the extension method below.
class Program
{
static void Main(string[] args)
{
Calculator cal = new Calculator();
double add=cal.Add(10, 10);
// It is a extension method in Calculator class.
double add=cal.Division(100, 10)
}
}
woot eh? a menos que se haya implementado dentro de los 6 meses posteriores a esto y la respuesta de [** Kumu **] (http://stackoverflow.com/a/1983396/274502) allí mismo, ¡parece realmente incompleto! – cregox
@Cawas esto no está incompleto, Andrew muestra cómo hacer esto con un ayudante estático, no con un método de extensión (ya que no hay ninguna instancia). –
Tienes razón, Nick. ¡Prefiero los métodos de extensión! ;) – cregox