Optimiza tu código en C# creando una clase estática de utilidades que centraliza tareas repetitivas: dibujar líneas, formatear títulos y generar beeps en consola. Este enfoque refleja el principio de la POO de ahorrar trabajo al evitar duplicación y concentrar lógica común en un solo lugar.
¿Qué es una clase estática y cómo se organiza en el proyecto?
Una clase estática no permite instancias y se usa directamente como si fuera un objeto único. Igual que Console, nunca se instancia, pero se llama con sus métodos disponibles. La idea: crear una carpeta "útil" (utilitario) y dentro el archivo Printer.cs bajo un namespace coherente.
¿Por qué usar una clase estática en C#?
Porque se usa sin crear objetos.
Porque concentra utilidades transversales.
Porque imita el patrón de Console, familiar y directo.
¿Cómo declarar la clase y el namespace?
Carpeta: útil.
Archivo: Printer.cs.
Namespace: util (o similar, consistente con tu solución).
usingstaticSystem.Console;// para usar WriteLine y Beep directonamespaceutil{publicstaticclassPrinter{// métodos aquí}}
¿Cómo dibujar líneas y formatear títulos con Console?
Partimos de una acción frecuente: imprimir separadores y títulos con líneas. Se usan parámetros opcionales y métodos de cadenas como PadLeft junto con la propiedad Length para ajustar tamaños.
¿Cómo dibujar una línea con tamaño variable?
Se usa un parámetro opcional: tamaño con valor por defecto 10.
Se rellena una cadena vacía con PadLeft(tamaño, '=').
Opción: acortar llamadas con using static System.Console para invocar WriteLine sin prefijo.
publicstaticvoidDibujarLinea(int tamaño =10){var linea =string.Empty.PadLeft(tamaño,'=');WriteLine(linea);}
Puntos clave:
Diferencia entre string y char: PadLeft recibe el carácter de relleno como char, no como string.
El orden correcto en PadLeft: primero el tamaño total, luego el carácter.
¿Cómo escribir un título con líneas arriba y abajo?
Primero se imprime el texto del título.
Luego se dibujan dos líneas del mismo largo del título.
Toque de formato: envolver el título con barra y espacios usando literales de cadena y el prefijo $.
publicstaticvoidWriteTitle(string titulo){// formateo con barra al inicio y finalvar tituloFormateado =$"| {titulo} |";var tamaño = tituloFormateado.Length;// +4 por las barras y espaciosDibujarLinea(tamaño);WriteLine(tituloFormateado);DibujarLinea(tamaño);}
Uso sugerido:
Printer.DibujarLinea();// línea de 10 por defectoPrinter.DibujarLinea(20);// línea de 20Printer.WriteTitle("Cursos escuela");
¿Cómo generar pitidos configurables con frecuencia, duración y cantidad?
Se generaliza el beep de consola con parámetros y un bucle while controlando el número de repeticiones mediante operador de decremento.