Microsoft .NET Framework.
Para entender el lenguaje de programación C#, primero hay que saber que Microsoft .NET Framework es un entorno de desarrollo de programación para todos los lenguajes de la plataforma .NET, como Visual C++, C#, Visual Basic o F#. Este framework nos pone a nuestra disposición multitud de procedimientos de programación ya estructurados, por lo que, a diferencia de C++, tareas como la creación de una ventana y su visualización serán realizadas a muy alto nivel de manera que nos podamos centrar en lo verdaderamente importante y no malgastar tiempo y energía en procesos a bajo nivel. Es por esto que a C# se lo denomina como un lenguaje de programación de muy alto nivel.
Pero no solamente la creación de ventanas será una ventaja al disponer de toda la funcionalidad del framework. Tal es la cantidad de procesos que están implementados en él que nunca llegarás a controlar todo el framework por muchas horas de estudio que emplees en ello: manejo de bases de datos, bibliotecas de audio y video, uso y reconocimiento de voz, implementaciones matemáticas, tratamiento de imágenes, serialización, flujos de entrada y salida, etc.
Pero lo más importante de C# es que se trata de un lenguaje de programación orientado a objetos, y lo es plenamente, no como el intento de Java de serlo, o C++ con sus pequeñas limitaciones en este sentido. No se entiende bien lo que significa que un lenguaje de programación esté orientado a objetos, por lo que no lo voy a explicar ahora, pero lo iremos viendo a lo largo del curso, especialmente cuando estudiemos las clases y sus propiedades de creación y herencia.
A la pregunta de qué es C#, podríamos contestar de una forma muy resumida lo siguiente: prescindiendo de lo pero de C++ y Java, y tomando lo mejor de éstos, en una fusión de un lenguaje verdaderamente orientado a objetos.
Primer programa en C#.
El siguiente código fuente es un programa en C#. De hecho, al compilarlo nos resultará un archivo ejecutable que funcionará correctamente. Veamos el códifo y luego lo analizamos:
Primera línea: es la declaración de la clase 'MiPrimerPrograma'. Ahora no nos vamos a detener en las clases, eso será más adelante. Simplemente tengamos una idea inicial de que la clase contiene el código que hay dentro de ella. De momento con eso es suficiente.
Segunda línea: se abre llaves. Como ves, la clase 'MiPrimerPrograma' encierra el código fuente que hay dentro de ella.
Tercera línea: 'public static void' especifica que el método 'Main' es 'public' porque es visible desde cualquier punto (ya verás más adelante lo que significa esto), es 'static' porque es estático (que sólo puede haber una instancia de él) y 'void' porque este método no devuelve ningún valor.
Cuarta línea: al igual que hacía la clase, el método también encierra su código fuente entre llaves.
Quinta línea: aquí se hace uso del framework por primera vez. De momento quédate con que se llama al método 'WriteLine' que pertenece a la clase 'Console' del espacio de nombres 'System'. Este método 'WriteLine', como su nombre indica, escribe una línea en la consola, en este caso lo que hemos especificado entre comillas.
Resto de líneas: las llaves de apertura siempre deben llevar sus propias llaves de cierre asociadas.
Sé que al principio es difícil entender lo que son los espacios de nombres y las clases, pero no te preocupes, es muy sencillo. Paciencia, lo verás más adelante.