Métodos de Extensión C#¶
Fuentes¶
Cita de MSDN
Los métodos de extensión permiten "agregar" métodos a los tipos existentes sin crear un nuevo tipo derivado, recompilar o modificar de otra manera el tipo original. Los métodos de extensión son una clase especial de método estático, pero se les llama como si fueran métodos de instancia en el tipo extendido. En el caso del código de cliente escrito en C# y Visual Basic, no existe ninguna diferencia aparente entre llamar a un método de extensión y llamar a los métodos realmente definidos en un tipo.Ejemplo simple¶
Los métodos de extensión deben estar en una clase static
y el método también
ha de ser static
.
public static clss StringExtension
{
public static string UcFirst(this string str)
{
if (str.Length == 0)
{
return string.Empty;
}
return string.Format("{0}{1}", str[0].ToUpper(), str.SubString(1));
}
}
El primer parámetro UcFirst(this string str)
con this
le decimos
a que hace referencia, en este caso es un tipo string
, pero podría
ser cualquier tipo.
Después del primer parámetro, se pueden poner tantos como se quiera, lo que al llamar al método, el «primer» argumento se omite.
string nombre = "salvador";
Console.WriteLine(nombre.UcFirst()); // Salvador
Al ser una extensión de string
al nombre.MyExtension()
es como si
el método fuera parte del string.