A veces es necesario agregar nueva funcionalidad a una clase y no deseamos modificar el código de esa clase; ya sea porque no tenemos acceso al código fuente o porque no deseamos tocar algo que ya funciona.
Con c# 3.0 estas clases se pueden extender; para hacerlo es necesario hacer lo siguiente:
-Agregar una clase estática con un método estático. El primer parámetro de la "nueva clase" se agrega automáticamente, pero es necesario marcarlo con la palabra this. cuando esta clase es creada dicho objeto es pasado automáticamente al método.
De esta manera el método agregado en la clase extensora aparece en el intellisense del objeto original.
Ejemplo:
Si tenemos una clase Customer y deseamos agregarle un método para renombrar el nombre del cliente la clase quedaría de la siguiente manera:
public static class CustomerExtender
{
public static void ChangeName(this Customer cust, String newName)
{
cust.Name = newName;
}
}
Donde el parámetro cust es el objeto Customer original. De esta manera podemos usar el siguiente código:
Customer customer = new Customer("Smart");
customer.ChangeName("Walmart");
customer.Save();
¡Como si el método ChangeName existiera en la clase original!.
Suscribirse a:
Comentarios de la entrada (Atom)
Mover mensajes seleccionados a un personal folder en Oulook 2016
Este es un ejemplo de como mover los mensajes seleccionados a un personal folder (pst) en Outlook 2016 usando VBA. Sub MoveInbox() Mov...
-
A continuación les muestro un ejemplo de como eliminar los registros repetidos de una DataTable . //DataTable con los reqistros repetidos...
-
Primero hay que crear el Panel como en el siguiente ejemplo: <dx:ASPxLoadingPanel ID="loadingPanel" ClientInstanceName=...
-
Problemas con Aplicaciones Web Las aplicaciones web son sin estado, lo que significa que una vez una página web es enviada desde servidor, ...
No hay comentarios.:
Publicar un comentario
Nota: sólo los miembros de este blog pueden publicar comentarios.