Cada lenguaje de programación tiene sus propias reglas de escritura: cómo se separan las instrucciones, cómo se agrupan bloques de código, cómo se nombran las cosas. A estas reglas las llamamos, en conjunto, sintaxis. En esta lección aprenderás las reglas de sintaxis fundamentales de C# —mayúsculas y minúsculas, punto y coma, llaves, comentarios, convenciones de nomenclatura e identificadores válidos— que usarás en absolutamente todo el código que escribas a partir de ahora. Dominar bien estas reglas te evitará gran parte de los errores de compilación que suelen frustrar a quien empieza a programar.

Contenido

  1. Sensibilidad a mayúsculas y minúsculas
  2. Punto y coma, llaves y bloques de código
  3. Comentarios: //, /* */ y ///
  4. Convenciones de nomenclatura: PascalCase y camelCase
  5. Estructura general de un fichero C#
  6. Identificadores válidos

Sensibilidad a mayúsculas y minúsculas

C# es un lenguaje case-sensitive (sensible a mayúsculas y minúsculas). Esto significa que miVariable, MiVariable y MIVARIABLE son considerados tres nombres distintos por el compilador. Esto afecta a todo: nombres de variables, de métodos, de clases, y también a las propias palabras clave del lenguaje.

Console.WriteLine("Esto compila correctamente");
// console.writeline("Esto NO compila"); // 'console' con minúscula no existe

Este detalle es muy importante porque es una fuente habitual de errores para quien viene de otros contextos (por ejemplo, algunos sistemas de archivos o lenguajes que no distinguen mayúsculas de minúsculas). En C#, siempre hay que respetar exactamente las mayúsculas y minúsculas de cada palabra clave y de cada nombre que uses.

Punto y coma, llaves y bloques de código

El punto y coma ;

En C#, (casi) toda instrucción termina con un punto y coma ;. El punto y coma le indica al compilador "aquí termina esta instrucción, la siguiente es independiente":

Console.WriteLine("Primera instruccion");
Console.WriteLine("Segunda instruccion");

Olvidar el punto y coma es, probablemente, el error de sintaxis más común al empezar a programar en C#. El compilador te avisará con un mensaje de error indicando la línea exacta.

Las llaves { } y los bloques de código

Las llaves delimitan bloques de código: un conjunto de instrucciones que se tratan como una unidad. Ya vimos en la lección anterior que un espacio de nombres, una clase y un método son, cada uno, un bloque delimitado por llaves. Lo mismo ocurrirá, más adelante en el curso, con los bloques de las estructuras de control (if, bucles, etc. — Módulo 2).

{
    // Todo lo que está aquí dentro pertenece a este bloque
    Console.WriteLine("Dentro del bloque");
}

Una convención muy extendida (y la que seguiremos en este curso) es la indentación: sangrar (añadir espacios o tabulaciones) el código que está dentro de un bloque, para que sea visualmente evidente qué pertenece a qué. C# no obliga a indentar el código para que compile —a diferencia de Python, por ejemplo— pero un código bien indentado es muchísimo más fácil de leer y mantener.

// Código correctamente indentado (recomendado)
if (true)
{
    Console.WriteLine("Bloque indentado correctamente");
}

// Código sin indentar (compila igual, pero es difícil de leer)
if (true) {
Console.WriteLine("Bloque sin indentar");
}

No te preocupes todavía por el significado de if; lo estudiaremos en detalle en el Módulo 2. Aquí solo nos interesa la forma, no el contenido.

Comentarios: //, /* */ y ///

Los comentarios son fragmentos de texto que el compilador ignora por completo: sirven únicamente para que las personas que lean el código (incluido tú mismo, en el futuro) entiendan qué hace o por qué se hizo de una determinada forma. C# ofrece tres tipos:

Tipo Sintaxis Uso habitual
Comentario de una línea // texto Aclaraciones breves junto a una línea de código
Comentario de bloque /* texto */ Comentarios que ocupan varias líneas, o desactivar temporalmente un fragmento de código
Comentario de documentación /// texto Documentar clases y métodos de forma que herramientas externas (como el propio editor) puedan mostrar esa documentación como ayuda

Comentario de una línea

// Este es un comentario de una línea
Console.WriteLine("Hola"); // También se puede comentar al final de una línea de código

Comentario de bloque

/*
   Este comentario ocupa
   varias líneas de texto.
   Muy útil para explicaciones largas.
*/
Console.WriteLine("BiblioTech");

Comentario de documentación

/// <summary>
/// Muestra un mensaje de bienvenida al sistema BiblioTech.
/// </summary>
Console.WriteLine("Bienvenido a BiblioTech!");

Los comentarios de documentación (///) usan una sintaxis especial basada en etiquetas XML, como <summary>. Aunque en este módulo no escribimos todavía métodos ni clases propias (eso llega en el Módulo 3), es importante que reconozcas esta sintaxis: muchos editores muestran automáticamente el contenido de estos comentarios como ayuda emergente cuando usas un método, y en proyectos profesionales es una práctica muy valorada documentar así el código público.

Convenciones de nomenclatura: PascalCase y camelCase

Una convención de nomenclatura es un acuerdo (no una regla obligatoria del compilador) sobre cómo escribir los nombres de las cosas en el código, para que sea coherente y fácil de leer para cualquier persona familiarizada con el lenguaje. En C#, la comunidad y el propio equipo de .NET siguen, de forma muy consistente, estas dos convenciones:

Convención Regla Ejemplo Se usa para
PascalCase Cada palabra empieza con mayúscula, sin separadores TituloLibro, NumeroPaginas, Program Nombres de clases, métodos, propiedades
camelCase La primera palabra en minúscula, las siguientes con mayúscula inicial tituloLibro, numeroPaginas Nombres de variables locales y parámetros

Ejemplo comparando ambos estilos sobre datos de BiblioTech:

// camelCase: variables locales
string tituloLibro = "Cien anos de soledad";
int numeroPaginas = 471;
bool estaDisponible = true;

// PascalCase: se usará para clases y métodos (Módulo 3), y ya lo vemos en 'Program' y 'Console'
Console.WriteLine(tituloLibro);

Aunque el compilador no te obliga a seguir estas convenciones (compilaría igual si usaras mayúsculas y minúsculas de otra forma), seguirlas es una práctica profesional fundamental: hace que tu código sea reconocible y coherente con el resto del ecosistema .NET, incluidas todas las bibliotecas estándar (Console, WriteLine, etc., ya siguen PascalCase).

Otras recomendaciones habituales

  • Los nombres deben ser descriptivos: mejor numeroPaginas que n o np.
  • Se evita, en general, el uso de guiones bajos _ como separador dentro del nombre (por ejemplo, se prefiere tituloLibro a titulo_libro), aunque sí se usa a veces un guion bajo como prefijo en ciertos contextos (por ejemplo, en campos privados de una clase, algo que veremos en el Módulo 3).
  • No se usan tildes, ñ ni caracteres especiales en los nombres de variables, para evitar problemas de compatibilidad entre teclados, editores y sistemas.

Estructura general de un fichero C#

Recordando lo visto en la lección anterior, un archivo .cs típico (en su forma clásica) sigue esta estructura general, de fuera hacia dentro:

using System;                 // 1. Directivas using

namespace BiblioTechConsola   // 2. Espacio de nombres
{
    class Program              // 3. Declaración de tipo (clase)
    {
        static void Main(string[] args)  // 4. Miembro (método)
        {
            // 5. Instrucciones
            Console.WriteLine("Bienvenido a BiblioTech!");
        }
    }
}
Paso Elemento Explicación
1 Directivas using Indican qué espacios de nombres externos se van a utilizar en el archivo. Se colocan siempre al principio.
2 Espacio de nombres Agrupa el código del proyecto bajo un nombre común, evitando conflictos con otras bibliotecas.
3 Declaración de tipo Una clase (o, más adelante en el curso, un struct, una interfaz, un record...) que contiene los miembros del programa.
4 Miembros Métodos, y más adelante (Módulo 3) propiedades y campos, definidos dentro del tipo.
5 Instrucciones El código que realmente se ejecuta, dentro de un método.

Como vimos en la lección anterior, en proyectos modernos con top-level statements los pasos 2, 3 y 4 quedan implícitos: solo escribes el paso 1 (si hace falta algún using adicional) y el paso 5 directamente. El compilador sigue generando "por debajo" esa misma estructura.

Usings implícitos

Recordarás que, al ver el archivo .csproj generado en la lección anterior, aparecía la opción <ImplicitUsings>enable</ImplicitUsings>. Esta opción, disponible en proyectos modernos de .NET, hace que ciertos espacios de nombres muy habituales (como System, donde vive Console) estén disponibles automáticamente en todo el proyecto, sin necesidad de escribir using System; al principio de cada archivo. Es la razón por la que, en los ejemplos de las lecciones anteriores, hemos podido usar Console.WriteLine directamente sin ninguna línea using visible.

Identificadores válidos

Un identificador es el nombre que le das a cualquier elemento de tu código: una variable, un método, una clase, etc. C# impone algunas reglas obligatorias (que si no se cumplen, el programa directamente no compila):

  • Debe empezar por una letra o por un guion bajo _ (nunca por un número).
  • El resto de caracteres pueden ser letras, números o guiones bajos.
  • No puede coincidir exactamente con una palabra clave reservada del lenguaje (como class, namespace, if, int...), salvo que se escriba con el prefijo especial @ (una técnica muy poco habitual, reservada para casos excepcionales).
  • No puede contener espacios ni símbolos como -, ., ñ, tildes, etc.
Identificador ¿Válido? Motivo
tituloLibro Empieza por letra, sin caracteres especiales
_isbn Empieza por guion bajo, es válido
numeroDePaginas2 Los números se permiten, mientras no sean el primer carácter
2numeroPaginas No Empieza por un número
titulo-libro No El guion - no está permitido en identificadores
título No recomendado Aunque algunos compiladores modernos lo aceptan, se evita por convención y compatibilidad
class No Coincide con una palabra clave reservada del lenguaje

Estas reglas se aplican no solo a variables sino, como veremos en módulos posteriores, a nombres de métodos, clases, propiedades y cualquier otro elemento que definamos nosotros mismos.

Errores Comunes y Consejos

  • Olvidar el punto y coma: ya lo hemos mencionado, pero merece repetirse porque es, con diferencia, el error más frecuente al empezar.
  • Mezclar mayúsculas y minúsculas sin darse cuenta: escribir Console.writeline(...) en lugar de Console.WriteLine(...) provoca un error de compilación, ya que C# distingue mayúsculas de minúsculas.
  • Anidar llaves sin indentar: aunque compile igual, el código sin indentar es muy difícil de depurar cuando el programa crece. Acostumbra tu editor a indentar automáticamente (la mayoría lo hacen al pulsar Intro).
  • Usar nombres poco descriptivos: variables como x, a1, temp dificultan entender el código más adelante. Prefiere siempre nombres descriptivos como tituloLibro o estaDisponible.
  • Confundir convención con obligación: PascalCase y camelCase son convenciones, no reglas del compilador; pero seguirlas es lo que se espera de cualquier código C# profesional, y las seguiremos durante todo el curso.
  • Consejo: cuando el compilador señale un error de sintaxis en una línea, revisa también la línea anterior: muchas veces el error real (como un punto y coma olvidado) está justo antes de donde se informa el problema.

Ejercicios

  1. De la siguiente lista de identificadores, indica cuáles son válidos en C# y, para los que no lo sean, explica por qué: numeroPaginas, 3isbn, _titulo, nombre completo, namespace, Autor2.

  2. Reescribe el siguiente fragmento de código aplicando correctamente las convenciones de nomenclatura (camelCase para variables) y una indentación adecuada:

    string TITULO = "El Quijote";
    int Paginas=863;
    bool Disponible=true;
    Console.WriteLine(TITULO);
    
  3. Añade a tu fragmento corregido del ejercicio anterior: un comentario de una línea que explique qué hace la variable paginas, y un comentario de bloque (/* */) al principio del archivo que explique brevemente qué hace todo el programa.

Soluciones

    • numeroPaginas → Válido (empieza por letra).
    • 3isbn → No válido (empieza por un número).
    • _titulo → Válido (empieza por guion bajo).
    • nombre completo → No válido (contiene un espacio).
    • namespace → No válido (es una palabra clave reservada del lenguaje).
    • Autor2 → Válido (empieza por letra, contiene un número que no es el primer carácter).
  1. Versión corregida:

    string titulo = "El Quijote";
    int paginas = 863;
    bool disponible = true;
    Console.WriteLine(titulo);
    

    Se ha cambiado TITULO, Paginas y Disponible (con mayúscula inicial, propio de PascalCase) a titulo, paginas y disponible en camelCase, adecuado para variables locales; también se ha añadido un espacio alrededor del signo = por legibilidad, aunque el compilador aceptaría ambas formas.

  2. Ejemplo de solución:

    /*
       Programa de ejemplo de BiblioTech.
       Muestra por pantalla el título de un libro del catálogo.
    */
    string titulo = "El Quijote";
    int paginas = 863; // Número total de páginas del libro
    bool disponible = true;
    Console.WriteLine(titulo);
    

Conclusión

En esta lección has aprendido las reglas de sintaxis que gobiernan cualquier programa en C#: la distinción entre mayúsculas y minúsculas, el uso del punto y coma y las llaves para delimitar instrucciones y bloques, los distintos tipos de comentarios, las convenciones de nomenclatura PascalCase y camelCase, la estructura general de un archivo y las reglas para que un identificador sea válido. Con esta base ya puedes leer y escribir código C# sintácticamente correcto y bien organizado.

En la siguiente lección, Variables y Tipos de Datos, pondremos en práctica estas reglas de nomenclatura declarando variables reales con distintos tipos de datos —números, texto, valores booleanos— usando como ejemplo los datos de un libro de BiblioTech: su título, su ISBN, su número de páginas y si está disponible o no.

Curso de Programación en C#

Módulo 1: Introducción a C#

Módulo 2: Estructuras de Control

Módulo 3: Programación Orientada a Objetos

Módulo 4: Conceptos Avanzados de C#

Módulo 5: Trabajando con Datos

Módulo 6: Temas Avanzados

Módulo 7: Construcción de Aplicaciones

Módulo 8: Mejores Prácticas y Patrones de Diseño

Módulo 9: Proyecto Final

© Copyright 2026. Todos los derechos reservados