Crea clase Escuela con propiedades en C#

Clase 11 de 32Fundamentos de C# con NET Core 2.1

Resumen

Aprende a crear una solución .NET ordenada y profesional con C# paso a paso: desde el proyecto de consola hasta una clase Escuela bien diseñada con encapsulamiento, propiedades y constructor. Verás atajos útiles de Visual Studio Code, convenciones y pequeñas decisiones que hacen tu código más mantenible.

¿Cómo iniciar un proyecto .NET consola con Visual Studio Code?

Crear la base correcta facilita todo. Se parte de un folder y se verifica cada paso para evitar errores.

  • Crear carpeta etapa uno y abrir en VS Code.
  • Inicializar una app de consola con .NET.
  • Ejecutar para ver el Hola Mundo.
  • Mantener orden: carpeta Entidades para clases del dominio.

¿Qué comandos usar en la terminal?

dotnet new console
dotnet run
  • Verifica que “Hola Mundo” se ejecute bien.
  • Usa la terminal integrada de VS Code.
  • Cada instrucción en C# finaliza con punto y coma.

¿Qué es el encapsulamiento en C# y cómo usar propiedades?

La clase Escuela modela el dominio y protege sus datos. En lugar de exponer campos públicos, se usan propiedades con get y set. Así podrás agregar lógica sin romper otras partes del código.

¿Cómo se define una propiedad con get y set?

  • Un campo privado guarda el dato.
  • Una propiedad pública controla lectura y escritura.
  • Se aplican convenciones: campo en minúscula; propiedad en PascalCase.
namespace CoreEscuela.Entidades
{
    public class Escuela
    {
        // Campo privado (atributo).
        private string nombre;

        // Propiedad con lógica de negocio.
        public string Nombre
        {
            get { return "copia " + nombre; } // Antecede "copia ".
            set { nombre = value.ToUpper(); }   // Fuerza mayúsculas.
        }

        // Propiedad autoimplementada (atajo get; set;).
        public int AñoDeCreación { get; set; }

        // Otras propiedades del dominio.
        public string País { get; set; }

        // Ejemplo estilo propfull: propiedad con campo de respaldo.
        private string ciudad;
        public string Ciudad
        {
            get { return ciudad; }
            set { ciudad = value; }
        }
    }
}
  • Conceptos clave: atributo/campo, propiedad, get, set, convención de nombres, shortcut de auto-propiedad.
  • Beneficio: puedes agregar validaciones, auditorías o transformaciones cuando leas/escribas.

¿Cómo crear auto-propiedades rápido con los atajos de VS Code?

  • Escribe prop y tabulador: crea tipo, nombre y { get; set; }.
  • Escribe propfull y tabulador: crea campo privado + propiedad completa.
  • Útiles para acelerar código repetitivo.

¿Cómo definir un constructor y asignar propiedades con tuplas?

El constructor obliga a crear objetos válidos desde el inicio. Puedes exigir parámetros mínimos, como nombre y año de creación.

¿Cómo funciona el constructor y la palabra clave this?

  • Si parámetro y campo se llaman igual, usa this para referirte al miembro de la clase.
  • Así evitas ambigüedad y asignas con claridad.
public class Escuela
{
    private string nombre;
    public string Nombre
    {
        get { return "copia " + nombre; }
        set { nombre = value.ToUpper(); }
    }
    public int AñoDeCreación { get; set; }
    public string País { get; set; }
    public string Ciudad { get; set; }

    // Constructor clásico.
    public Escuela(string nombre, int año)
    {
        this.Nombre = nombre;
        this.AñoDeCreación = año;
        País = "Colombia";
        Ciudad = "Bogotá";
    }
}
  • Ventaja: garantiza datos mínimos y consistentes.
  • Puedes asignar valores por defecto a otras propiedades.

¿Cómo usar asignación por tuplas en el constructor?

  • Versión corta: asigna varias propiedades en una sola línea.
  • Limpia, legible y mantiene la intención.
public Escuela(string nombre, int año)
    => (Nombre, AñoDeCreación) = (nombre, año);

Ejemplo de uso desde Program:

var escuela = new Escuela("Platzi Academy", 2012)
{
    País = "Colombia",
    Ciudad = "Bogotá"
};

Console.WriteLine(escuela.Nombre); // Salida: "copia PLATZI ACADEMY"

¿Te quedó alguna duda sobre propiedades, get/set o constructores? Cuéntame en un comentario qué parte quieres practicar más o qué caso real de tu proyecto te gustaría modelar.

      Crea clase Escuela con propiedades en C#