Está en la página 1de 2

Tarea #2

Método estático:
En C#, un método estático es un método que pertenece a la clase y no es una instancia de la
clase. Esto significa que este método puede ser llamado sin crear una instancia de la clase.
Se accede a través del nombre de la clase en lugar de a través de una instancia.
Beneficios:
Pueden ser más eficientes en términos de memoria y rendimiento porque no requieren
crear una versión. Son útiles para funciones de utilidad que no dependen del estado de una
instancia particular.
Desventajas:
No pueden acceder a miembros no estáticos de la clase.
Pueden llevar a un acoplamiento más fuerte entre clases porque no pueden ser sobre
escritos o heredados.
Extensiones:
Las extensiones en C# te permiten agregar nuevos métodos o propiedades a tipos existentes
sin modificar la definición original del tipo. Esto se logra a través de métodos de extensión,
que son métodos estáticos en clases estáticas, y deben estar en el mismo espacio de
nombres que el tipo extendido.
Cómo convertir un método estático en una extensión:
Para crear una extensión, debes definir una clase estática y un método estático dentro de
esa clase. Este método debe tener un primer parámetro que especifique a qué tipo se aplica
la extensión.
Delegados:
Un delegado en C# es un tipo de dato que representa referencias a métodos. Permite tratar
los métodos como si fueran objetos, lo que facilita la asignación dinámica de métodos a
variables y su posterior invocación.
Eventos:
Los eventos en C# son una forma de implementar el patrón de diseño de observador.
Permiten que un objeto notifique a otros objetos cuando ocurre algún evento. Los eventos
están basados en delegados.
Funciones Lambda:
Las funciones lambda en C# son una forma de definir funciones anónimas que se pueden
usar para crear expresiones de función en línea. Son útiles cuando se necesita pasar una
función como argumento a otra función o cuando se necesita una función rápida y de un
solo uso.
Métodos Asíncronos:
Los métodos asíncronos en C# permiten que una operación se ejecute en segundo plano,
evitando bloquear la ejecución del programa principal. Esto es especialmente útil cuando se
realizan operaciones que pueden llevar tiempo, como la lectura de archivos o solicitudes a
servidores.
Task y async:
Task:
Task es una clase en C# que representa una operación asincrónica que puede devolver un
resultado. Es una forma de representar una tarea que puede ser monitoreada y controlada.
async:
async es un modificador que se utiliza para marcar un método como asincrónico. Esto
permite que el método use la palabra clave await para esperar la finalización de operaciones
asincrónicas sin bloquear el hilo de ejecución.
Diferencia entre struct y class en C#:
struct:
Las estructuras son tipos de valor, lo que significa que se almacenan en la pila y se pasan por
valor.
Son más eficientes en términos de memoria para tipos pequeños y simples.
No admiten herencia.
Son adecuadas para representar entidades ligeras como coordenadas, números complejos,
etc.
class:
Las clases son tipos de referencia, lo que significa que se almacenan en el montón y se pasan
por referencia.
Pueden heredar de otras clases.
Son más flexibles pero pueden ser menos eficientes en términos de memoria para tipos
pequeños.
En resumen, se utilizan las estructuras cuando se necesita un tipo de valor pequeño y
simple, y se utilizan las clases para modelos más complejos y cuando se requiere herencia.
Recuerda que es importante tener en cuenta el contexto y los requisitos específicos de cada
situación al decidir qué enfoque utilizar.

También podría gustarte