C# pronunciado como “See Sharp” es un moderno lenguaje de programación orientado a objetos desarrollado por Microsoft y lanzado en el año 200.
Este permite a los desarrolladores construir aplicaciones robustas y seguras que se ejecutan en el ecosistema de .NET. Este lenguaje tiene sus raíces en lenguajes de la familia C y es muy familiar a C, C++, Java y JavaScript e incluye mejoras derivadas de estos lenguajes.
Gracias a Mono, se pueden crear programas multiplataforma utilizando C# y estos serán capaces de correr tanto en Windows como en Linux, Android e incluso MacOS entro otros.
Es un lenguaje orientado a objetos y a componentes, proporciona construcciones de lenguaje para respaldar directamente estos conceptos, lo que lo convierte en un lenguaje natural para crear y usar componentes de software. Sus características permiten crear aplicaciones solidas y duraderas, entre ellas tenemos:
- Garbage Collector que recupera automáticamente la memoria ocupada por objetos inaccesibles no utilizados.
- Exception Hadling que provee un enfoque estructurado y extensible para la detección y recuperación de errores.
- Lambda Expressions para admitir técnicas de programación funcional.
- LINQ que crea un patrón común para trabajar con datos de cualquier fuente.
- Entre muchas otras más.
Además, C# enfatiza el control de versiones para garantizar que los programas y las bibliotecas puedan evolucionar de manera compatible.
Como se mencionó los programas de C# se ejecutan en .NET, un sistema de ejecución virtual llamado Common Languaje Runtime (CLR) y un conjunto de bibliotecas de clases. El CLR es la implementación de la infraestructura de lenguaje común CLI que es la base para crear entornos de ejecución y desarrollo en los que los lenguajes y las bibliotecas funcionan juntos sin problemas.
Cómo funciona
El código fuente escrito en C# se compila en un lenguaje intermedio IL que cumple con la especificación CLI. El código y los recursos de IL se almacenan en un ensamblado de extensión .dll.
Cuando se ejecuta el programa, el ensamblado se carga en CLR, el cual realiza la compilación Just-In-Time (JIT) para convertir el código IL en instrucciones nativas para la máquina.
Interoperabilidad
El código IL producido por el compilador de C# cumple con la especificación de tipo común (CTS), lo que significa que este código IL es capaz de interactuar con las versiones .NET de F#, VB, C++ o cualquiera de los mas de 20 lenguajes compatibles con CTS. Un ensamblado puede contener varios módulos escritos en diferentes lenguajes .NET y se pueden referir entre sí como si estuvieran escritos en el mismo lenguaje.
Tipos y variables
En C# hay dos clases de tipos, tipos de valor y tipos de referencia. Las variables de tipos de valor contienen directamente sus datos. Las variables de tipos de referencia almacenan referencias a sus datos, conocidos como objetos.
Cuando se trabaja con variables por referencia es posible que al tener dos variables que hagan referencia al mismo objeto, las operaciones realizadas a una variable afecten a la otra. Cosa que no sucede en las variables por valor que tienen su propia copia de los datos y las operaciones no afectan a otras variables.
Para concluir C# es un lenguaje fuertemente tipado, lo que significa que una variable declarada con un tipo en concreto no puede admitir valores de otro tipo de dato. Te invitamos a seguir aprendiendo sobre este lenguaje siguiéndonos y contribuyendo a este sitio.
Documentación relacionada:
- https://docs.microsoft.com/en-us/dotnet/csharp/tour-of-csharp/
- https://docs.microsoft.com/es-es/dotnet/csharp/language-reference/builtin-types/value-types