Métodos de extensión en C# explicados

Métodos de extensión en C# explicados
Los métodos de extensión son una característica poderosa de C# que permite a los desarrolladores extender los tipos existentes con una nueva funcionalidad sin modificar su código fuente. Este artículo explorará los métodos de extensión de C# y cómo se pueden usar en este lenguaje de programación.

¿Qué son los métodos de extensión??

Los métodos de extensión son una especie de método estático que elimina la molestia de editar el código fuente para agregar nuevos métodos. Esto significa que los desarrolladores pueden agregar una nueva funcionalidad a tipos como cadenas, enteros o cualquier otra clase personalizada sin tener que crear una nueva clase o modificar la clase original. Los métodos de extensión se definen en clases estáticas y usan el "este" Palabra clave Para especificar el tipo que se extiende, la sintaxis para crear un método de extensión es el siguiente:

Name de Methodpe de retorno estático público (este parámetro ExtendedType)

// Implementación

La palabra clave pública indica que se puede acceder al método desde cualquier lugar del código, Static indica que el método es un método estático, y returnType es el tipo de datos que devuelve ese método. MethodName es el nombre del método de extensión y esta palabra clave seguida de la type extendido El parámetro indica que este método extiende la clase ExtendedType.

El parámetro es el parámetro que se pasa al método, y la implementación del método se escribe dentro de los aparatos . Esta sintaxis permite a los desarrolladores crear nuevos métodos para los tipos existentes, lo que hace que el código sea más reutilizable y modular.

Cómo usar el método de extensión para extender la clase de cadena

Supongamos que desea agregar un nuevo método a la clase de cadena que capitaliza la primera letra de la cadena, puede hacerlo utilizando un método de extensión utilizando el siguiente código dado:

usando el sistema;
clase pública estática StringExtensions

Cadena estática pública CapitalizeFirstletter (esta entrada de cadena)

if (cadena.Isnullorempty (entrada))

entrada de retorno;

devolver charle.Toupper (entrada [0]) + entrada.Subcadena (1);


programa de clase

static void main (string [] args)

String input = "Hello Linux";
Resultado de cadena = entrada.CapitalizeFirstletter ();
Consola.Escritura (resultado);

Hemos creado una nueva aplicación de consola que incluye la clase StringExtensions y, en general, hemos creado una variable de cadena llamada como entrada y le asignó una cadena que contiene "Hola Linux". Al lado el CapitalizeFirstletter El método de extensión se llama en la cadena de entrada, que capitaliza la primera letra de la cadena. Finalmente, imprimimos el resultado en la consola utilizando la función 'WriteLine ()' para que debe ver la salida "Hola Linux" Cuando ejecuta este programa:

Cómo usar el método de extensión para extender la clase entera

Supongamos que desea agregar un nuevo método a la clase entera que determina si el entero es uniforme o impar. Puede hacer esto utilizando un método de extensión, como se muestra a continuación:

usando el sistema;
Clase estática pública InteGerExtensions

Public static bool iseven (esta entrada int)

Entrada de retorno % 2 == 0;


programa de clase

static void main (string [] args)

int número = 10;
if (número.Incluso())

Consola.WriteLine ($ "número es incluso.");

demás

Consola.WriteLine ($ "número es impar.");


El código crea un método de extensión iseven para el tipo de datos int y el Incluso la función devuelve verdadero si el entero de entrada es uniforme y falso de lo contrario.

En general, hemos creado un número de variable entera y le hemos asignado el valor 10 y después de eso llamamos al método de extensión ISEVEN en la variable de número, que devuelve verdadero ya que 10 es incluso. Finalmente, imprimimos el resultado en la consola utilizando la función 'WriteLine ()' para que debe ver la salida "10 es uniforme" Cuando ejecuta este programa:

Cómo usar el método de extensión para extender la interfaz de lista

Digamos que desea agregar un nuevo método al Ilista interfaz que determina si la lista está vacía o no y para hacer su uso de un método de extensión, como se muestra a continuación:

usando el sistema;
Uso del sistema.Colecciones.Genérico;
Class estática pública ListExtensions

Pública estática bool isEpty (esta lista ilistor)

Lista de retorno == NULL || lista.Recuento == 0;


programa de clase

static void main (string [] args)

Números de lista = new List ();
if (números.Esta vacio())

Consola.WriteLine ("La lista está vacía.");

demás

Consola.WriteLine ($ "La lista contiene números.Contar elementos.");


En este ejemplo, hemos creado un método de extensión Isempty for the ilist Tipo de datos, donde t es un parámetro de tipo genérico. El Esta vacio El método devuelve verdadero si la lista de entrada es nula o no tiene elementos, y falso lo contrario. En general hemos creado un nuevo Lista se llamó números y luego llamó al Esta vacio Método de extensión en la lista de números, que devuelve verdadero ya que la lista está vacía. Inicialmente, imprimimos el resultado en la consola utilizando la función 'WriteLine ()' para que debe ver la salida "La lista está vacía" Cuando ejecuta este programa:

Conclusión

Los métodos de extensión son una de las características más útiles de C# que permite a los programadores extender los tipos existentes con una nueva funcionalidad sin modificar su código original. Los métodos de extensión se definen en una clase estática y usan el "este" Palabra clave seguida del tipo que se extiende para indicar que son métodos de extensión. En este artículo, hemos visto tres ejemplos de métodos de extensión que extienden las clases de cadena, entero e ilista.