Extension Methods in C#

Extension Methods in C#

Requirement:

To implement a method over a class of the system or over one that belongs to an outsider dll.

Concept:

With CSharp 3.0  the concept of “extension methods” was introduced, these basically allow us to extend the functionality of a class without the need of complying or having to modify them.

Solution:

extension methods are defined in static clases and have the following syntax:

img1

(*It is a static method but [this List<T> list] is making reference  to the object invoked for the type of extension method that we are generating, this way, it is possible to manipulate the data to our liking inside the structure of the function)

Then the way to use it will be the following:

img2

This way it is possible to generate extension methods and spread out the functionality of the classes that we are not familiar with.

In the following link you can find a working example that will help to clarify the idea: Extension Methods (dotnetfiddler)​

And in case you would like to see the solution I will leave here in this following link:  ExtensionMethodsExample.zip

Reference: https://en.wikibooks.org/wiki/C_Sharp_Programming/Extension_methods​

—————————————————————————————————————————————–

Extension Methods en C#

Necesidad

Implementar un método sobre una clase del sistema o perteneciente a una dll de terceros.

Concepto

​Con CSharp 3.0 se introdujo el concepto de “extension methods”​​​ que básicamente permiten​ extender la funcionalidad de una clase sin la necesidad de recopilarla o tener que cambiarla en sí misma.​

Solución

Los extension methods se definen en clases estáticas​​ y tienen la siguiente sintaxis:​

img1

(* El método es estático pero esto [this List<T> list] refiere al objeto instanciado para el tipo que estamos generando el extension method, y de esta forma podemos manipular los datos a nuestro antojo en el cuerpo de la función.)

Luego finalmente la forma de utilizarlo sería esta:

img2

De esta manera es que podemos generar extension methods y extender la funcionalidad de clases que no manejamos.

En el siguiente link les paso un working example para terminar de aclarar la idea: Extension Methods (dotnetfiddler)​

o para los que prefieren la solucion aqui se las dejo: ExtensionMethodsExample.zip

Bibliografia de referencia y más informacion: https://en.wikibooks.org/wiki/C_Sharp_Programming/Extension_methods​

Share This