Curso de C# desde cero

Sintaxis básica de C#

Capítulo 2: Partes de Visual Studio y del código C# - Sintaxis básica


Seguimos en el punto donde lo dejé en el capítulo anterior. Tenemos un pequeño programa que solo muestra un mensaje en la consola. Antes de pararme a explicar cada parte de estas líneas obligatorias en cada programa, vamos a ver las secciones básicas de Visual Studio.

Partes de Visual Studio

Veamos una explicación de las partes de Visual Studio que vas a utilizar por ahora.

Partes de Visual Studio
  1. Botones para crear proyectos y abrir y guardar archivos.
  2. Deshacer - rehacer.
  3. Ejecutar el programa.
  4. Explorador de soluciones.
  5. Solución.
  6. Proyecto.
  7. Archivo C#.
  8. Editor de código.
  9. Nombre del archivo abierto en el editor.
  10. Salida.

Diferencias entre solución, proyecto y archivo en Visual Studio

Ahora que ya sabes un poco como manejar Visual Studio, pasemos a ver la diferencia entre solución, aplicación y archivo.

Una solución es un contenedor que contiene uno o más proyectos. En la imagen superior solo hay un proyecto dentro de la solución. El proyecto es el llamado Tests.

Las aplicaciones que crees van incluidas en los proyectos, son los que contienen todos los archivos que necesita el programa. En el caso de este ejemplo, lleva las Dependencias y un archivo de C# que es el que contiene el código, pero no necesariamente tenemos porque tener solo uno. Podemos tener cuantos archivos queramos.

Partes de un programa C#

Para terminar con este segundo capítulo todavía introductorio, veamos las partes básicas que forman cualquier programa C#.

namespace Test
{
    internal class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("Hello, World!");
        }
    }
}

En la línea 1 se declara un espacio de nombres con la palabra clave namespace llamado Tests.

¿Qué es un espacio de nombres?

Un espacio de nombres es un contenedor que sirve para organizar el código. Dentro de este, puedes colocar diversas clases (solo hay una en este ejemplo), en el que solo pueden existir identificadores únicos. Un identificador va asociado a su namespace (espacio de nombres).
Para que lo entiendas mejor, imagina un sitio web donde te registras y das un nombre de usuario. ¿Cuántas veces te ha pasado que te dice que ese nombre ya está registrado? en cambio, si vas a registrarte con el mismo nombre a otro sitio web, si no está ocupado, podrás repetir tu nombre de usuario, pero nunca podrá estar repetido en un mismo sitio web. Pues los namespaces funcionan de esta forma, no se puede repetir el mismo nombre en un mismo namespace. Cuando empecemos a programar lo irás entendiendo todo mejor. De momento quédate con estas ideas básicas.

internal Class Program es una clase. Una clase contiene los datos y métodos que se utilizan en el programa. Esto lo explicaré con más detalle más adelante.

Esta clase contiene un único método, el de la línea 7. Este método llamado Main es el punto de entrada para todos los programas de C#. También lo explicaré más adelante (no quiero liarte ahora que estás empezando).

Finalmente, la línea 9, tiene una llamada a la consola. Esta llamada utiliza el método WriteLine que simplemente imprime el mensaje en la consola. Puedes traducir esto al español como "EscribeLinea", por si te ayuda a recordar mejor lo que hace.

Ahora que conoces un poco sobre la estructura básica de un programa de C#, te doy unas cuantas normas de sintaxis que también puedes ver en la imagen de ejemplo.

Normas de sintaxis básica de C#

C# es case sensitive. Esto quiere decir que distingue entre mayúsculas y minúsculas y no es lo mismo WriteLine que writeline o WRITELINE.

Para delimitar cada una de las partes del programa lo haremos con las llaves { }, una para la apertura y otra para el cierre. Debes aprender a colocar estas llaves correctamente.
En la línea 2 tengo la llave de apertura de namespace Tests. El namespace (espacio de nombres) engloba a la clase y al método Main() con todo lo que hay en su interior, de modo que el cierre va en la línea 10.

En la línea 4 se abre la clase y se cierra en la línea 9.

En la línea 6, se abre el método y en la 8 se cierra.

Ten en cuenta esto, llave que se abre, llave que se cierra. La primera en abrirse, es la última en cerrarse.

Las instrucciones como Console.WriteLine se separan o cierran con un punto y coma. Ten en cuenta que este suele ser uno de los principales fallos de compilación, el dejarse sin poner algún punto y coma.

El "texto", de ahora en adelante string (cadena de caracteres en español) como "Hello, World!" se escribe entre comillas dobles.

C# es de formato libre, lo que quiere decir que ignora los espacios en blanco, da igual los saltos de línea que dejes, tabulaciones y espacios. Los tienes que tener en cuenta para organizar correctamente el código y que sea fácil de leer por personas. Sigue las formas de escribir de mis ejemplos y lo harás correctamente.

Un ejemplo que compilaría pero que es poco legible es el siguiente. El cuál, debes evitar utilizar:

namespace Test{internal class Program{static void Main(string[] args){Console.WriteLine("Hello, World!");}}}

Es el mismo programa, pero sin espacios. Funciona igual, pero es muy difícil de leer por las personas.
El propósito de los lenguajes de alto nivel como C# es que sean más fáciles de leer por las personas y alejarlos del código que entienden directamente las máquinas. Con el código anterior, estaríamos desaprovechando parte de su utilidad.

Aún queda mucho por ver, pero no quiero abrumarte con un millón de cosas. Si no entendiste algo puedes hacer dos cosas, la primera es preguntarme en los comentarios y la segunda es asimilar lo que puedas y seguir adelante si crees que lo has entendido bastante. Lo que no quiero que hagas es estancarte o abandonar. ¡Eso jamás !


Ejercicios de C#

  1. En el siguiente código, ¿en qué línea está la llave de apertura de class Program? ¿y la de cierre?
  2. namespace Test
    {
        internal class Program
        {
            static void Main(string[] args)
            {
                Console.WriteLine("¡Hola!");
    
                Console.Write("Por favor, introduzca su nombre: ");
                string nombre = Console.ReadLine() ?? "";
    
                Console.WriteLine("¡Hola, " + nombre + "! Te doy la bienvenida a mi programa.");
            }
        }
    }
    
  3. Corrige los fallos que encuentres en el siguiente código:
  4. namespace Tests
    {
    	{
    	internal class Program
    		static void Main(>string[] args)
    		{
    			Console.WriteLine("Esto es Programación Fácil y estás en el curso de C#);
    		}
    	}
    }
Puedes y debes utilizar siempre el editor para probar código. Tiene muchas ayudas que te vendrán genial para no perder mucho tiempo buscando problemas. Si compila quiere decir que lo has hecho genial.

La solución la encontrarás aquí: Haz click aquí.


Comentarios

Si te quedan dudas sobre el temario, sobre C#, o cualquier otra cosa relacionada o simplemente quieres agradecer, aquí tienes tu sitio para dejar tu granito de arena. Gracias por tus comentarios y por darle vida a este sitio web.

Programación Fácil YouTube

Suscríbete

Si te ha gustado este curso y crees que el trabajo merece la pena, te agradeceré eternamente que te suscribas a mi canal de YouTube para apoyarme y que pueda seguir haciendo cursos gratuitos.

Además, si te encanta la programación, tienes un montón más de cursos gratuitos para ver.

No solo eso, podrás participar enviándome comentarios con tus sugerencias para temas específicos o cursos completos o incluso las dudas que tengas y las intentaré ir resolviendo en los cursos que estén todavía abiertos.