No tienes acceso a esta clase

¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera

Clases estáticas

26/32
Recursos

Una clase estática no permite crear nuevas instancias, la clase por si misma funciona como un objeto.

Aportes 65

Preguntas 12

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad?

El método Beep si en lugar de Beep se llamara Pitar o otro nombre diferente se puede poner Beep(hz, tiempo), en lugar de System.Console.Beep(hz,tiempo). Debido a que Beep es una palabra reservada.

Una clase estática nos permite tener la funcionabilidad de una clase sin tener que instanciar un objeto, esto nos permite aislar funcionamientos específicos y de la misma manera nos permite ser más claros en nuestras líenas de código por ejemplo la clase Printer y su método DibujarLínea.

Funcionaria igual a un aporte anterior.

<code>        
 public static void DibujarLinea(int tam = 10) {
	 WriteLine(new string('=', tam));
}

Me encanta esta manera de enseñar como se organiza de manera correcta un proyecto 😄

El Beep para mac no funciona. Poner cualquier otra cosa para seguir avanzando. (Y)

Algunas caracteristicas de las Clases Estaticas:

  • Las clases NO estaticas pueden tener metodos estaticos
  • Las clases NO estaticas pueden tener propiedades estaticas, esto para asignacion de valores que son comunes entre todas las instancias de la clase.
  • Una clase estatica no se instacia, actua como objeto.
  • Para acceder a los metodos de una clase estatica se puede hacer haciendo el uso del nombre de la clase
Printer.PrintLine(); //Nombre de la clase estatica Printer llamando al metodo, vemos que la instancia de Printer no se realiza por ser clase estatica.
  • Las clases estaticas SOLO pueden tener miembros staticos
  • Las clases estaticas no pueden heredar de otras clases.

Este profe es bien pro :V, alquien sabe que mas cursos da ?

Les comparto un manera más elegante de hacer lo mismo que el método DibujarLínea:

public static void DibujarLínea(int tam = 50)
        {
            WriteLine( new string( '=', tam ) );
        }

Acá les dejo Smoke on the Water! XD

public static void SmokeOnTheWater()
        {
            var negra = 250;
            var blanca = negra * 2;
            
            Console.Beep(150,blanca);
            Console.Beep(175,blanca);
            Console.Beep(200,blanca*2);
            Thread.Sleep(blanca);
            Console.Beep(150,blanca);
            Console.Beep(175,negra);
            Console.Beep(210,negra);
            Console.Beep(200,blanca*2);
            Thread.Sleep(blanca);
            Console.Beep(150,blanca);
            Console.Beep(175,negra);
            Console.Beep(200,blanca*2);
            Thread.Sleep(blanca);
            Console.Beep(175,blanca);
            Console.Beep(150,blanca*4);
        }

A quien le interese la cancón de Super Mario pueden usar lo siguiente:

Console.Beep(659, 125); Console.Beep(659, 125); Thread.Sleep(125); Console.Beep(659, 125); Thread.Sleep(167); Console.Beep(523, 125); Console.Beep(659, 125); Thread.Sleep(125); Console.Beep(784, 125); Thread.Sleep(375); Console.Beep(392, 125); Thread.Sleep(375); Console.Beep(523, 125); Thread.Sleep(250); Console.Beep(392, 125); Thread.Sleep(250); Console.Beep(330, 125); Thread.Sleep(250); Console.Beep(440, 125); Thread.Sleep(125); Console.Beep(494, 125); Thread.Sleep(125); Console.Beep(466, 125); Thread.Sleep(42); Console.Beep(440, 125); Thread.Sleep(125); Console.Beep(392, 125); Thread.Sleep(125); Console.Beep(659, 125); Thread.Sleep(125); Console.Beep(784, 125); Thread.Sleep(125); Console.Beep(880, 125); Thread.Sleep(125); Console.Beep(698, 125); Console.Beep(784, 125); Thread.Sleep(125); Console.Beep(659, 125); Thread.Sleep(125); Console.Beep(523, 125); Thread.Sleep(125); Console.Beep(587, 125); Console.Beep(494, 125); Thread.Sleep(125); Console.Beep(523, 125); Thread.Sleep(250); Console.Beep(392, 125); Thread.Sleep(250); Console.Beep(330, 125); Thread.Sleep(250); Console.Beep(440, 125); Thread.Sleep(125); Console.Beep(494, 125); Thread.Sleep(125); Console.Beep(466, 125); Thread.Sleep(42); Console.Beep(440, 125); Thread.Sleep(125); Console.Beep(392, 125); Thread.Sleep(125); Console.Beep(659, 125); Thread.Sleep(125); Console.Beep(784, 125); Thread.Sleep(125); Console.Beep(880, 125); Thread.Sleep(125); Console.Beep(698, 125); Console.Beep(784, 125); Thread.Sleep(125); Console.Beep(659, 125); Thread.Sleep(125); Console.Beep(523, 125); Thread.Sleep(125); Console.Beep(587, 125); Console.Beep(494, 125); Thread.Sleep(375); Console.Beep(784, 125); Console.Beep(740, 125); Console.Beep(698, 125); Thread.Sleep(42); Console.Beep(622, 125); Thread.Sleep(125); Console.Beep(659, 125); Thread.Sleep(167); Console.Beep(415, 125); Console.Beep(440, 125); Console.Beep(523, 125); Thread.Sleep(125); Console.Beep(440, 125); Console.Beep(523, 125); Console.Beep(587, 125); Thread.Sleep(250); Console.Beep(784, 125); Console.Beep(740, 125); Console.Beep(698, 125); Thread.Sleep(42); Console.Beep(622, 125); Thread.Sleep(125); Console.Beep(659, 125); Thread.Sleep(167); Console.Beep(698, 125); Thread.Sleep(125); Console.Beep(698, 125); Console.Beep(698, 125); Thread.Sleep(625); Console.Beep(784, 125); Console.Beep(740, 125); Console.Beep(698, 125); Thread.Sleep(42); Console.Beep(622, 125); Thread.Sleep(125); Console.Beep(659, 125); Thread.Sleep(167); Console.Beep(415, 125); Console.Beep(440, 125); Console.Beep(523, 125); Thread.Sleep(125); Console.Beep(440, 125); Console.Beep(523, 125); Console.Beep(587, 125); Thread.Sleep(250); Console.Beep(622, 125); Thread.Sleep(250); Console.Beep(587, 125); Thread.Sleep(250); Console.Beep(523, 125); Thread.Sleep(1125); Console.Beep(784, 125); Console.Beep(740, 125); Console.Beep(698, 125); Thread.Sleep(42); Console.Beep(622, 125); Thread.Sleep(125); Console.Beep(659, 125); Thread.Sleep(167); Console.Beep(415, 125); Console.Beep(440, 125); Console.Beep(523, 125); Thread.Sleep(125); Console.Beep(440, 125); Console.Beep(523, 125); Console.Beep(587, 125); Thread.Sleep(250); Console.Beep(784, 125); Console.Beep(740, 125); Console.Beep(698, 125); Thread.Sleep(42); Console.Beep(622, 125); Thread.Sleep(125); Console.Beep(659, 125); Thread.Sleep(167); Console.Beep(698, 125); Thread.Sleep(125); Console.Beep(698, 125); Console.Beep(698, 125); Thread.Sleep(625); Console.Beep(784, 125); Console.Beep(740, 125); Console.Beep(698, 125); Thread.Sleep(42); Console.Beep(622, 125); Thread.Sleep(125); Console.Beep(659, 125); Thread.Sleep(167); Console.Beep(415, 125); Console.Beep(440, 125); Console.Beep(523, 125); Thread.Sleep(125); Console.Beep(440, 125); Console.Beep(523, 125); Console.Beep(587, 125); Thread.Sleep(250); Console.Beep(622, 125); Thread.Sleep(250); Console.Beep(587, 125); Thread.Sleep(250); Console.Beep(523, 125);

Una duda, cuando tendría que public o private para las clases? Osea que diferencia hay, por que yo nunca le puse ninguna. Aparte si trato de poner private me dice error no se puede declarar como private implícitamente

Este curso me ha gustado mucho!

Difiero un poco de la definición dada por el profesor para una clase estática. Las Clases abstractas tampoco permiten crear instancias. La diferencia radica en que una clase estática también es sealed, es decir que no se puede heredar y que todos sus métodos y atributos deben ser estáticos.

Les comparto mi timbre: An Instant Vision de Samuel Maykapar 😃

public static void Timbrar()
        {
            Beep(554, 187);
            Beep(740, 187);
            Beep(831, 187);

            Beep(880, 187);
            Beep(831, 187);
            Beep(740, 187);

            Beep(587, 94);
            Beep(740, 94);
            Beep(554, 187);
            Beep(494, 187);

            Beep(554, 1500);
        }

Con los beep hice la cancion de kokun using System;

namespace CoreEscuela
{
class Escuela
{
//Atributos
public string nombre;
public string direccion;
public int añofundacion;
public string director;

    public void Timbrar(){
    /*
    //NOTAS AGUDAS
    Console.Beep(262, 500); //do
    Console.Beep(294, 500); //re
    Console.Beep(330, 500); //mi
    Console.Beep(349, 500); //fa
    Console.Beep(392, 500); //sol
    Console.Beep(440, 500); //la
    Console.Beep(494, 500); //si

    //NOTAS GRAVES
    Console.Beep(1048, 500); //DO
    Console.Beep(1176, 600); //RE
    Console.Beep(1320, 500); //MI
    Console.Beep(1396, 500); //FA
    Console.Beep(1568, 500); //SOL
    Console.Beep(1760, 500);//LA
    Console.Beep(1976, 500); //SI
    */

    // mi corazon encantado
    Console.Beep(330, 250); //mi
    Console.Beep(330, 250); //mi
    Console.Beep(262, 250); //do
    Console.Beep(294, 250); //re
    Console.Beep(330, 250); //mi
    Console.Beep(349, 250); //fa
    Console.Beep(330, 250); //mi
    Console.Beep(294, 250); //re
    Console.Beep(262, 250); //do
    Console.Beep(1976, 250); //SI

    Console.Beep(262, 250); //do
    Console.Beep(262, 250); //do
    Console.Beep(1760, 250); //LA
    Console.Beep(1976, 250); //SI
    Console.Beep(262, 250); //do
    Console.Beep(294, 250); //re
    Console.Beep(1048, 250); //DO
    Console.Beep(1976, 250); //SI
    Console.Beep(1760, 250); //LA
    Console.Beep(1568, 250); //SOL

    Console.Beep(1760, 250); //LA
    Console.Beep(1760, 250); //LA
    Console.Beep(262, 250); //do
    Console.Beep(349, 250); //fa
    Console.Beep(330, 250); //mi
    Console.Beep(262, 250); //do
    Console.Beep(294, 250); //re
    Console.Beep(330, 250); //mi
    Console.Beep(349, 250); //fa
    Console.Beep(330, 250); //mi
    Console.Beep(294, 250); //re
    Console.Beep(262, 250); //do
    Console.Beep(294, 250); //re
    Console.Beep(262, 250); //do
    Console.Beep(262, 250); //do
    Console.Beep(1976, 250); //SI
    Console.Beep(262, 250); //do


    Console.Beep(1176, 250); //RE
    Console.Beep(1760, 250); //LA
    Console.Beep(1760, 250); //LA
    Console.Beep(1760, 250); //LA
    Console.Beep(1760, 250); //LA
    Console.Beep(1760, 250); //LA
    Console.Beep(1568, 250); //SOL
    Console.Beep(1396, 250); //FA
    Console.Beep(1568, 250); //SOL
    Console.Beep(1760, 250); //LA
    Console.Beep(1568, 250); //SOL

    Console.Beep(1048, 250); //DO
    Console.Beep(1568, 250); //SOL
    Console.Beep(1568, 250); //SOL
    Console.Beep(1568, 250); //SOL
    Console.Beep(1568, 250); //SOL
    Console.Beep(1568, 250); //SOL
    Console.Beep(1396, 250); //FA
    Console.Beep(1320, 250); //MI
    Console.Beep(1396, 250); //FA
    Console.Beep(1568, 250); //SOL
    Console.Beep(1396, 250); //FA

    Console.Beep(1176, 250); //RE
    Console.Beep(1396, 250); //FA
    Console.Beep(1396, 250); //FA
    Console.Beep(1396, 250); //FA
    Console.Beep(1320, 250); //MI
    Console.Beep(1176, 250); //RE
    Console.Beep(1320, 250); //MI
    Console.Beep(1320, 250); //MI
    Console.Beep(1176, 250); //RE
    Console.Beep(1048, 250); //DO
    Console.Beep(1176, 250); //RE
    Console.Beep(1048, 250); //DO
    Console.Beep(1176, 250); //RE
    Console.Beep(1320, 250); //MI

    Console.Beep(1320, 250); //MI
    Console.Beep(1396, 250); //FA
    Console.Beep(1568, 250); //SOL
    Console.Beep(1760, 250); //LA
    Console.Beep(1176, 250); //RE
    Console.Beep(1760, 250); //LA
    Console.Beep(1760, 250); //LA
    Console.Beep(1760, 250); //LA
    Console.Beep(1760, 250); //LA
    Console.Beep(1760, 250); //LA
    Console.Beep(1568, 250); //SOL
    Console.Beep(1396, 250); //FA
    Console.Beep(1568, 250); //SOL
    Console.Beep(1760, 250); //LA
    Console.Beep(1568, 250); //SOL

    Console.Beep(1568, 250); //SOL
    Console.Beep(1568, 250); //SOL
    Console.Beep(1760, 250); //LA
    Console.Beep(1976, 250); //SI
    Console.Beep(1976, 250); //SI
    Console.Beep(262, 250); //do
    Console.Beep(1568, 250); //SOL
    Console.Beep(1396, 250); //FA
    Console.Beep(1320, 250); //MI
    Console.Beep(1396, 250); //FA

    Console.Beep(1396, 250); //FA
    Console.Beep(1568, 250); //SOL
    Console.Beep(1396, 250); //FA
    Console.Beep(1320, 250); //MI
    Console.Beep(1320, 250); //MI
    Console.Beep(1320, 250); //MI
    Console.Beep(1320, 250); //MI
    Console.Beep(330, 250); //mi
    Console.Beep(294, 250); //re
    Console.Beep(294, 250); //re
    Console.Beep(294, 250); //re
    Console.Beep(262, 250); //do
    Console.Beep(1976, 250); //SI
    Console.Beep(262, 250); //do

    Console.Beep(1760, 250); //LA
    Console.Beep(1976, 250); //SI
    Console.Beep(262, 250); //do
    Console.Beep(262, 250); //do
    Console.Beep(1760, 250); //LA
    Console.Beep(262, 250); //do
    Console.Beep(262, 250); //do
    Console.Beep(1760, 250); //LA
    Console.Beep(262, 250); //do

    Console.Beep(262, 250); //do
    Console.Beep(294, 250); //re
    Console.Beep(262, 250); //do
    Console.Beep(1976, 250); //SI
    Console.Beep(1760, 250); //LA
    Console.Beep(1760, 250); //LA
    Console.Beep(1568, 250); //SOL
    Console.Beep(1320, 250); //MI
    Console.Beep(1568, 250); //SOL
    Console.Beep(1568, 250); //SOL
    Console.Beep(1320, 250); //MI
    Console.Beep(1568, 250); //SOL
    Console.Beep(1568, 250); //SOL

    Console.Beep(1320, 250); //MI
    Console.Beep(1568, 250); //SOL
    Console.Beep(1760, 250); //LA
    Console.Beep(1976, 250); //SI
    Console.Beep(1976, 250); //SI
    Console.Beep(262, 250); //do
    Console.Beep(1760, 250); //LA
    Console.Beep(1760, 250); //LA
    Console.Beep(1760, 250); //LA
    Console.Beep(1760, 250); //LA
    Console.Beep(1760, 250); //LA
    Console.Beep(1760, 250); //LA
    Console.Beep(330, 250); //mi
    Console.Beep(294, 250); //re
    Console.Beep(294, 250); //re
    Console.Beep(294, 250); //re
    Console.Beep(294, 250); //re
    Console.Beep(262, 250); //do
    Console.Beep(294, 250); //re
    Console.Beep(330, 250); //mi


    Console.Beep(330, 250); //mi
    Console.Beep(330, 250); //mi
    Console.Beep(262, 250); //do
    Console.Beep(294, 250); //re
    Console.Beep(330, 250); //mi
    Console.Beep(349, 250); //fa
    Console.Beep(330, 250); //mi
    Console.Beep(294, 250); //re
    Console.Beep(262, 250); //do
    Console.Beep(1976, 250); //SI

    Console.Beep(262, 250); //do
    Console.Beep(262, 250); //do
    Console.Beep(1760, 250); //LA
    Console.Beep(1976, 250); //SI
    Console.Beep(262, 250); //do
    Console.Beep(294, 250); //re
    Console.Beep(1048, 250); //DO
    Console.Beep(1976, 250); //SI
    Console.Beep(1760, 250); //LA
    Console.Beep(1568, 250); //SOL

    Console.Beep(1760, 250); //LA
    Console.Beep(262, 250); //do
    Console.Beep(349, 250); //fa
    Console.Beep(330, 250); //mi
    Console.Beep(330, 250); //mi
    Console.Beep(262, 250); //do
    Console.Beep(294, 250); //re
    Console.Beep(330, 250); //mi
    Console.Beep(349, 250); //fa
    Console.Beep(330, 250); //mi
    Console.Beep(294, 250); //re
    Console.Beep(262, 250); //do
    Console.Beep(330, 250); //mi
    Console.Beep(330, 250); //mi
    Console.Beep(294, 250); //re

    Console.Beep(330, 250); //mi
    Console.Beep(330, 250); //mi
    Console.Beep(262, 250); //do
    Console.Beep(294, 250); //re
    Console.Beep(330, 250); //mi
    Console.Beep(349, 250); //fa
    Console.Beep(330, 250); //mi
    Console.Beep(294, 250); //re
    Console.Beep(262, 250); //do
    Console.Beep(1976, 250); //SI

    Console.Beep(262, 250); //do
    Console.Beep(262, 250); //do
    Console.Beep(1760, 250); //LA
    Console.Beep(1976, 250); //SI
    Console.Beep(262, 250); //do
    Console.Beep(294, 250); //re
    Console.Beep(1048, 250); //DO
    Console.Beep(1976, 250); //SI
    Console.Beep(1760, 250); //LA
    Console.Beep(1568, 250); //SOL

    Console.Beep(1760, 250); //LA
    Console.Beep(1760, 250); //LA
    Console.Beep(262, 250); //do
    Console.Beep(349, 250); //fa
    Console.Beep(330, 250); //mi
    Console.Beep(262, 250); //do
    Console.Beep(294, 250); //re
    Console.Beep(330, 250); //mi
    Console.Beep(349, 250); //fa
    Console.Beep(330, 250); //mi
    Console.Beep(294, 250); //re
    Console.Beep(262, 250); //do
    Console.Beep(294, 250); //re
    Console.Beep(262, 250); //do
    Console.Beep(262, 250); //do
    Console.Beep(1976, 250); //SI
    Console.Beep(262, 250); //do

    }
}
class Program
{
    static void Main(string[] args)
    {
        var miEscuela = new Escuela();
        miEscuela.nombre = "john davis";
        miEscuela.direccion = "portete";
        miEscuela.añofundacion = 2022;

        Console.WriteLine("Timbrando");
        miEscuela.Timbrar();
    }
}

}

PadLeft

Buen truco… ese nunca lo había escuchado …

Este seria el concepto de singleton??

Una duda, cuando tendría que public o private para las clases? Osea que diferencia hay, por que yo nunca le puse ninguna. Aparte si trato de poner private me dice error no se puede declarar como private implícitamente

Beep no sirve para Ubuntu. Ha sido lo unico que no he podido probar :(

Una alternativa al DibujarLinea podria ser aprovechar el constructor de string (sobrecarga) que recibe un dato char y el numero de veces que los vas a copiar
public static void DibujarLinea(int tamaño = 20)
{
Console.WriteLine(new string(’=’, tamaño));
}

El Beep no funciona en linux

Muy buena clase!

Genial 😎

Muy buena clase… Saber como organizar un proyecto es importante

La función Beep es soportada en cualquier SO?
estoy tomando el curso desde mi Ubuntu Desktop sin embargo me da el siguiente error

Unhandled Exception: System.PlatformNotSupportedException: Operation is not supported on this platform.
   at System.ConsolePal.Beep(Int32 frequency, Int32 duration)
   at System.Console.Beep(Int32 frequency, Int32 duration)

¿Es necesario usar otra función en Linux?
Mi función es la siguiente


        public static void Beep_(int hertz = 2000, int time= 500, int cantidad = 1){
            while(cantidad-- > 0)
            {
                System.Console.Beep(hertz,time);
            }
        }

La razón por la cual no se puede escribir

Console.Beep()

Es porque desde el inicio de la clase definimos que usarios

using static System.Console

Por lo que se podría escribir solamente

public static void Timbrar(int hz = 2000, int duracion = 500, int repetir = 1) { while (repetir-- > 0) { Beep(hz, duracion); } }

Muy buena la clase

Falto un método para cambiar el color de fondo y el color de la letra,además alinear el texto

En este caso las clases estaticas es cuando no es necesario crear obketos ya que estas clases se cargan en memoria como son sus metodos
Ejemplo de codigo

<       public static void restar()
            
            { }
>

Duda con Mac no aparece el sonido hay que instalarle algo o utilizar un using en particular?

Saludos,

Excelente!

No permite crear nuevas instancias

Buenas clases

Gente, no escuche el ultimo beep, espero que sea el audio de mi laptop …

Excelente curso 😄

Hola … Alguien sabe como reemplazar todo el código que esta igual escrito… ej… cuando tenemos una variable que se llama escuela en minúscula vos la pintas y visual studio code te resalta en todos los lugares donde se encuentra …
Al escribir por ejemplo la E mayuscual reemplazar en todos esos puntos

No esta mal

Super útil ese .PadLeft :3

jajajajjajajaj, yo para hacer el dibujar linea lo habia hecho con un for jajajajjajajajajajaj y luego el me lo resume a dos lineas !!!

Vamos, a seguir trabajando seriamente.

public static void Titulo(string titulo)
{
titulo = $"| - {titulo} - |";
DibujarLinea(titulo.Length);
WriteLine(titulo);
DibujarLinea(titulo.Length);
}

Console.Beep

No funcionaba por que arriba declaro:

using static System.Console;

por lo tanto no tenia que poner System al principio solo había que quitar el Console, asi:

Beep(hz, tiempo);
///este metodo imprime la escuela usando s.Length para el tamaño de las lineas
        public static void PrintSchool(SchoolPrototype school)
        {
            var s = school.ToString();
            var sLength= s.Length +4;
            PrintLine(sLength);
            WriteLine($"| {school} |");
            PrintLine(sLength);
        }

la clase printer se ve que es muy util sobre todo porque encapsula codigo repetitivo.

Una clase estática no permite crear nuevas instancias, la clase por si misma funciona como un objeto.

Vamos por mas!

Clases Estaticas

Una clase estática es básicamente lo mismo que una clase no estática, pero hay una diferencia: una clase estática no puede ser instanciada. En otras palabras, no puede usar el operador new para crear una variable del tipo de clase. Como no hay una variable de instancia, puede acceder a los miembros de una clase estática utilizando el nombre de la clase en sí.

Me encanto la clase

No encuentro una alternativa al Beep en linux (ノ°益°)ノ

Apenas vi que iba a usar beep le baje el volumen a la compu

Clase entendida, excelente

Excelente profe, que buenas explicaciones.

Algunas formas de hacerlo

public static void Dibujarlinea(int cant = 10)
        {
            var linea = "".PadLeft(cant, '=');
            System.Console.WriteLine("PadLeft" + linea);

            var linea1 = "".PadRight(cant, '=');
            System.Console.WriteLine("PadLeft" + linea1);

            string v = new string('*', cant);
            System.Console.WriteLine("string" + v);

            string B = string.Concat(Enumerable.Repeat("-", cant));
            System.Console.WriteLine("Concat(Enumerable)" + B);
        }

también puede ser

public static void DibujarLinea(int tamaño = 100)
{
	WriteLine(string.Empty.PadLeft(tamaño,'='));
}
Console.Beep no funciona en el método Beep porque ambos se llaman igual, simplemente hay que cambiar el nombre al método

WriteLine(new String(’=’, tamaño));
el objeto de string en si ya lo tiene hecho y te evitas hacer eso

Esta clase nos permitirá crear clases estáticas, estas clases no permiten ser instanciadas actúan com oobjetos

Crearemos una carpeta llamada Util, y también ahí en esa carpeta un archivo que se llamará Printer.cs. Aquí se creará la clase estática.

La principal funcionalidad que haremos es imprimir las líneas para los títulos

Se creará un método para esto, yo en este caso lo llamaré DrawLine recibirá como parámetro la cantidad de veces que se repetirá la línea.

var line="".PadLeft(size,'=');

Esta línea hace que en line una cadena vacía la llene hacia la izquierda con =

Para llamarla en el programa principal

Printer.DrawLine(20)

Un timbre de escuela.

public static void Timbrar()
        {           
            // Las Campanas de westminster
            Beep(395*2,500);
            Beep(352*2,500);
            Beep(313*2,500);
            Beep(234*2,1000);
            Beep(234*2,500);
            Beep(352*2,500);
            Beep(395*2,500);
            Beep(313*2,1000);
        }```

Comparto mi clase Printer 😉

using System;
using System.Collections.Generic;
using System.Text;
using static System.Console;

namespace CoreSchool.Utils
{
    // Clase estática: no permite crear nuevas instancias, por sí misma se comporta como objeto
    public static class Printer
    {
        public static void drawDivider(int size = 70, char character = '*')
        {
            WriteLine(new string(character, size));
        }

        public static void drawTitle(string title, int size = 70, char character = '*')
        {
            drawDivider(size, character);
            WriteLine(title);
            drawDivider(size, character);
        }
    }
}

Hasta ahora entendí bien las clases static y tengo algunos años de saber Java 🤭 que verguenza!

“Música para mis oídos” xD
Por eso me cae bien este profe

NO es una buena práctica, definir nombres de variables con abreviaciones o que no se entienda bien qué es lo que hace. Tengan en cuenta que si abren su código un par de año después, debe ser entendible fácilmente para que sea mantenible rápidamente.

Para el ejemplo de DibujarLinea, es mejor pasar como argumento (int tamañoLinea = 10).

/*Aquí les dejo mi timbre, espero que a más de uno le traiga viejos y gratos recuerdos... */

Console.Beep(659, 125); Console.Beep(659, 125); 
Thread.Sleep(125); Console.Beep(659, 125); 
Thread.Sleep(167); Console.Beep(523, 125); 
Console.Beep(659, 125); Thread.Sleep(125); 
Console.Beep(784, 125); Thread.Sleep(375); 
Console.Beep(392, 125); Thread.Sleep(375); 
Console.Beep(523, 125); Thread.Sleep(250); 
Console.Beep(392, 125); Thread.Sleep(250); 
Console.Beep(330, 125); Thread.Sleep(250); 
Console.Beep(440, 125); Thread.Sleep(125); 
Console.Beep(494, 125); Thread.Sleep(125); 
Console.Beep(466, 125); Thread.Sleep(42); 
Console.Beep(440, 125); Thread.Sleep(125); 
Console.Beep(392, 125); Thread.Sleep(125); 
Console.Beep(659, 125); Thread.Sleep(125); 
Console.Beep(784, 125); Thread.Sleep(125); 
Console.Beep(880, 125); Thread.Sleep(125); 
Console.Beep(698, 125); Console.Beep(784, 125); 
Thread.Sleep(125); Console.Beep(659, 125); 
Thread.Sleep(125); Console.Beep(523, 125); 
Thread.Sleep(125); Console.Beep(587, 125); 
Console.Beep(494, 125); Thread.Sleep(125); 
Console.Beep(523, 125); Thread.Sleep(250); 
Console.Beep(392, 125); Thread.Sleep(250); 
Console.Beep(330, 125); Thread.Sleep(250); 
Console.Beep(440, 125); Thread.Sleep(125); 
Console.Beep(494, 125); Thread.Sleep(125); 
Console.Beep(466, 125); Thread.Sleep(42); 
Console.Beep(440, 125); Thread.Sleep(125); 
Console.Beep(392, 125); Thread.Sleep(125); 
Console.Beep(659, 125); Thread.Sleep(125); 
Console.Beep(784, 125); Thread.Sleep(125); 
Console.Beep(880, 125); Thread.Sleep(125); 
Console.Beep(698, 125); Console.Beep(784, 125); 
Thread.Sleep(125); Console.Beep(659, 125); 
Thread.Sleep(125); Console.Beep(523, 125); 
Thread.Sleep(125); Console.Beep(587, 125); 
Console.Beep(494, 125); Thread.Sleep(375); 
Console.Beep(784, 125); Console.Beep(740, 125); 
Console.Beep(698, 125); Thread.Sleep(42); 
Console.Beep(622, 125); Thread.Sleep(125); 
Console.Beep(659, 125); Thread.Sleep(167); 
Console.Beep(415, 125); Console.Beep(440, 125); 
Console.Beep(523, 125); Thread.Sleep(125); 
Console.Beep(440, 125); Console.Beep(523, 125); 
Console.Beep(587, 125); Thread.Sleep(250); 
Console.Beep(784, 125); Console.Beep(740, 125); 
Console.Beep(698, 125); Thread.Sleep(42); 
Console.Beep(622, 125); Thread.Sleep(125); 
Console.Beep(659, 125); Thread.Sleep(167); 
Console.Beep(698, 125); Thread.Sleep(125); 
Console.Beep(698, 125); Console.Beep(698, 125); 
Thread.Sleep(625); Console.Beep(784, 125); 
Console.Beep(740, 125); Console.Beep(698, 125); 
Thread.Sleep(42); Console.Beep(622, 125); 
Thread.Sleep(125); Console.Beep(659, 125); 
Thread.Sleep(167); Console.Beep(415, 125); 
Console.Beep(440, 125); Console.Beep(523, 125); 
Thread.Sleep(125); Console.Beep(440, 125); 
Console.Beep(523, 125); Console.Beep(587, 125); 
Thread.Sleep(250); Console.Beep(622, 125); 
Thread.Sleep(250); Console.Beep(587, 125); 
Thread.Sleep(250); Console.Beep(523, 125); 
Thread.Sleep(1125); Console.Beep(784, 125); 
Console.Beep(740, 125); Console.Beep(698, 125); 
Thread.Sleep(42); Console.Beep(622, 125); 
Thread.Sleep(125); Console.Beep(659, 125); 
Thread.Sleep(167); Console.Beep(415, 125); 
Console.Beep(440, 125); Console.Beep(523, 125); 
Thread.Sleep(125); Console.Beep(440, 125); 
Console.Beep(523, 125); Console.Beep(587, 125); 
Thread.Sleep(250); Console.Beep(784, 125); 
Console.Beep(740, 125); Console.Beep(698, 125); 
Thread.Sleep(42); Console.Beep(622, 125); 
Thread.Sleep(125); Console.Beep(659, 125); 
Thread.Sleep(167); Console.Beep(698, 125); 
Thread.Sleep(125); Console.Beep(698, 125); 
Console.Beep(698, 125); Thread.Sleep(625); 
Console.Beep(784, 125); Console.Beep(740, 125); 
Console.Beep(698, 125); Thread.Sleep(42); 
Console.Beep(622, 125); Thread.Sleep(125); 
Console.Beep(659, 125); Thread.Sleep(167); 
Console.Beep(415, 125); Console.Beep(440, 125); 
Console.Beep(523, 125); Thread.Sleep(125); 
Console.Beep(440, 125); Console.Beep(523, 125); 
Console.Beep(587, 125); Thread.Sleep(250); 
Console.Beep(622, 125); Thread.Sleep(250); 
Console.Beep(587, 125); Thread.Sleep(250); 
Console.Beep(523, 125);