Saltar al contenido

C# (C Sharp)

Hablar del lenguaje de programación C#, o C Sharp tal y como se pronuncia, es hablar del lenguaje creado por Microsoft para la plataforma .NET.

Este lenguaje es muy parecido a Java, y deriva de otros más populares como el C o el C++.

¿Porqué Microsoft creó otro lenguaje de programación? ¿Era necesario? Vamos a ver un poco de historia para entenderlo.

Índice del contenido

Historia del lenguaje de programación C#

El lenguaje más popular de Microsoft siempre había sido Visual Basic, sobretodo con la versión Visual Basic 6.

Pero Microsoft apostó por crear la plataforma Framework .NET para suplir las carencias y desventajas que tenían con VB6.

Microsoft .NET es la tecnología por la que sigue apostando la compañía actualmente, y se ha transformado en una de las más potentes hoy en día, abrancado diferentes ámbitos en la programación, desde las aplicaciones de escritorio hasta la creación de videojuegos.

Cuando se presentó .NET en el 2003, lo hizo junto a un nuevo lenguaje de programación. Llevaban años desarrollándolo, bajo el nombre de COOL (C Object Oriented Language), pero al final en su presentación cambió de nombre por C Sharp.

El creador principal de C# es Andres Hejlsberg, que participó en la escritura del código de la plataforma .NET.

Antes había trabajado en el diseño de Turbo Pascal, Delphi (la parte visual de Pascal) y Visual J++.

El símbolo # (almohadilla)

¿Te has parado a pensar sobre el símbolo #? Aunque lo utilizamos bastante a menudo, como hastag gracias a Twitter, se ha usado siempre en música.

En música, un sostenido se coloca junto a una nota musical, para indicar que tiene medio tono más alto.

c# almohadilla

Pero este símbolo se usa en muchos otros entornos. Por ejemplo, es uno de los botones de cualquier teléfono fijo o móvil (para hacer funciones especiales), se utiliza como formato de un número hexadecimal (por ejemplo los colores que se pueden utilizar al hacer páginas web)…

También interpreta que el símbolo # indica que tiene 4 + juntos, así podían decir los creadores que era superior a C++, je je.

Características principales de C#

Veamos algunas de las características del lenguaje C#, y así poder comprar con algunos más parecidos a él como Java o C++.

Estas características pueden verse como una serie de ventajas y desventajas del lenguaje de programación C#.

  • Sintaxis sencilla. La sintaxis de C# es muy similar a Java, lo que simplifica al desarrollador a la hora de escribir código.
  • Escritura. En C# tienes que declarar los tipos de datos con las variables, además que estas variables no pueden ser globales. De esta manera se reducen los errores de compilación. Además, es un lenguaje orientado a objetos, así que obliga que todos los métodos y propiedades estén dentro de una clase.
  • Orientación a componentes. Además de ser orientado a objetos, como hemos dicho antes, es orientado a componentes. Podemos definir propiedades sin necesidad de crear métodos, como en Java, o usar eventos sin tratar con punteros a funciones. Escribir código en C# es mucho más sencillo y potente que en otros lenguajes de programación.
  • Sistema de tipos unificado. Todos los tipos de datos sencillos de C# derivan de una clase común llamada System.Object. De esta manera, la conversión de tipos sólo es compatible entre los tipos más cercanos (números enteros con decimales, por ejemplo), además de facilitar la creación de colecciones.
  • CLR (Common Language Runtime). Es el núcleo de .NET, el motor que ejecuta las aplicaciones programadas en C#, lo que ayuda a la integración del sistema operativo o dlls externas.
  • Espacio de nombres. Puedes agrupar o aislar código mediante namespaces, parecido al package de Java.
  • Polimorfismo. En C++ se permite la herencia múltiple, pero en C# no, aunque puedes implementar interfaces. De esta manera se evitan complicaciones y simplifica la escritura.
  • Operadores sobrescritos. En C# puedes recodificar un operador, como puede ser el sumatorio + o el incremento ++.
  • Bibliotecas. Cualquier compilador de C# viene con un mínimo de biblioteca de clases disponibles y que puedes usar.
  • Eliminación de los problemas de DLLs. Aunque puedes crear dlls en .NET, no te encuentras con la problemática de la sustitución de versiones antiguas de dlls compartidas con versiones nuevas. Pueden existir diferentes versiones de la misma dll, simplificando la instalación del softwasre.
  • Multiplataforma. Actualmente, el lenguaje C# es de código abierto y se ha utilizado en otros IDEs, como el proyecto Mono o Xamarin, y en múltiples sistemas operativos, como puede ser OSx o Android.
  • Integración con otros lenguajes. Cualquier lenguaje que se compile con .NET, como la nueva versión de visual basic, puede aprovecharse para usar en tu proyecto.
  • Mejora en la gestión de memoria. Al igual que Java, en C# dispone de un recolector de basura que destruye los objetos que no se usan en memoria.
  • Tratamiento de errores. Cualquier lenguaje de programacion moderno utiliza las excepciones para controlar los posibles errores en el código.
  • Multihilo. Puedes dividir tu código en múltiples hilos de ejecución, trabajar en paralelo y sincronizándose al final.

Tipos de datos en C Sharp

Existe varios tipos de datos en C#, pero en realidad están en un sistema de tipo unificado, llamado CTS [Common Type System].

Todos los tipos de datos primitivos, como pueden ser los números enteros, son subclases de la clase principal System.Object.

Por ejemplo, cualquier tipo de dato, como puede ser un int, tiene un método llamado ToString(), que transforma ese tipo a una cadena de texto.

Los tipos de datos primitivos son:

  • Números enteros: cualquier número sin decimales (positivo o negativo).
  • Números reales: cualquier número con decimales.
  • Cadena de texto: cualquier valor alfanumérico.
  • booleano: una peculiaridad es que este tipo no se equipara con un número 0 o 1, como puede ocurrir en otros lenguajes de programación. true o false son los únicos valores cuando definimos este tipo.

Programar Unity con C#

unity c#

Unity es un programa para crear tus propios videojuegos, que se ha hecho muy popular por las posibilidades que tiene.

Su motor es multiplataforma, permite exportar a ordenadores, dispositivos móviles con Android o iOS, y las diferentes videoconsolas de mercado.

Muchos estudios utilizan Unity por su capacidad para hacer videojuegos en 3D y su acabado profesional.

Además, tiene una licencia de uso gratuito, así que cualquiera puede probar el programa sin tener que pagar nada.

¿Que lenguaje de programación usa Unity? Pues es posible programar en C#, gracias a MonoDevelop.

Así que si quieres hacer videojuegos, aprender C# para usarlo con Unity es una muy buena opción a valorar.

Visual Studio en C#

Como ya hemos dicho, el lenguaje C# fue creado por Microsoft, que lo presentó por primera vez con Visual Studio .NET.

Visual Studio es un IDE que te ofrece todas las herramientas necesarias para poder crear programas, aplicaciones y páginas web.

Visual Studio IDE C#

Daremos un repaso rápido a las versiones que han ido apareciendo.

Microsoft Visual Studio 6.0

La primera versión fue Visual Studio 6.0, lanzada en 1998 para Windows 95 y 98, ¡que tiempos aquellos!

La versión Profesional de Visual Studio 6 incluía:

  • Visual Basic
  • Visual C++
  • Visual FoxPro
  • Visual J++
  • Visual Interdev (páginas ASP)

Microsoft Visual Studio .NET

En 2002 aparece Visual Studio .NET, que viene con el FrameWork 1.0, lo que supuso la introducción de C# como un nuevo lenguaje de programación.

Las diferentes versiones que aparecieron son:

  • Visual Studio .NET
  • Visual Studio .NET 2003
  • Visual Studio 2005
  • Visual Studio 2008
  • Visual Studio 2010
  • Visual Studio 2012
  • Visual Studio 2013
  • Visual Studio 2015
  • Visual Studio 2017
  • Visual Studio 2019
  • Visual Studio 2022

Como puedes ver, cada dos años aproximadamente aparece una nueva versión con más novedades.

Una de las novedades sería en la versión de Visual Studio 2005, aparece por primera vez opciones gratuitas llamadas Express, que separa cada lenguaje de programación en una plataforma, además de algunas limitaciones.

Por ejemplo, podrías encontrarte un Visual Basic Express 2005, o Visual C# Express 2005. estas versiones están pensadas para estudiantes. También en esta versión aparece XNA Game Studio, para hacer proyectos para Xbox 360.

Con Visual Studio 2012 ya se podía crear programas para Windows Phone, porque salió junto con el sistema operativo Windows 8.

En Visual Studio 2013 se abandonan las versiones gratuitas Express, y se crea la versión Community. Con Visual Studio Comunnity ofrece lo mismo que la versión Professional, pero está pensada para equipos de programadores más pequeños, aparte de los estudiantes.

Con Visual Studio 2015 permite ampliar las versiones de frameworks con las que trabajar, hasta .NET Framework 4.6.1 y .NET Core 2.0.

Visual Studio 2017, viene con Xamarin integrado, y nos permite crear aplicaciones multiplataforma para móviles, es decir, aplicaciones UWP (Windows Universal), iOs y Android.

Con Visual Studio 2019 se ha hecho énfasis al desarrollo por equipos, código colaborativo o con herramientas como Visual Studio Live Share, integración del código con IntelliCode.

Finalmente, con la última versión de Visual Studio 2022, toda la aplicación es de 64 bits, tiene compatibilidad con varios repositorios Git y mejoras en búsqueda de archivos, IntelliCode y apariencia.

Curso para aprender programación en C#

Con toda la información que has visto, ¿te gustaría aprender a programar en C#?

Como has visto, si quieres hacer aplicaciones para Windows o Mac, videojuegos o páginas web, con C# es una buena manera de iniciarte en diferentes áreas con el mismo lenguaje.

Si buscas un curso de C# tendrás que ver si sabes algo de programación, o si quieres aprender a programar con este lenguaje, para ver si quieres un curso básico, avanzado o específico en alguna plataforma.

Resumen final

Hemos visto el lenguaje por el que a apostado Microsoft para su futuro, el cual puedes hacer desde programas hasta videojuegos. Hemos visto sus principales características y sus posibles usos, para decidir si es un lenguaje que merece la pena aprender.

Ajustes