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.
Introducción al curso
Bienvenidos al curso
Instalación de C#
Mi primer programa C#
Instalación de Visual Studio Code
Configuración IDE
Breve Historia de C#
Versiones de C# / ¿De dónde viene su nombre?
Clases y Objetos
Clases, objetos, métodos, acciones y atributos
Introducción a la Programación Orientada a Objetos
Aprendamos con un proyecto
Proyecto: CorEscuela
Etapa 1 – Creando la escuela
Creación de la estructura básica de la escuela
Uso de numeraciones y el método ToString
Creación de parámetros
Etapa 2 – Creando Cursos para la escuela
Creando otros objetos para nuestra escuela
¿Qué es un arreglo?
Crea un arreglo de objetos
Formas de recorrer arreglos
Inicializando arreglos y mejorando impresión
Condiciones
Operadores en C#
Etapa 3 – Implementado colecciones para el manejo de cursos
Colecciones vs arreglos
Implementando colecciones
Removiendo y buscando objetos en colecciones
Expresiones lambda y delegados
Etapa 4 – Refactorizando y cargando datos de prueba
Refactorizar a escuela engine
Clases estáticas
Creación de entidades
Generación de datos aleatorios
Datos de prueba
El gran RETO
El gran reto
Resolución del reto
Conclusiones del curso
No tienes acceso a esta clase
¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera
Juan Carlos Ruiz
Una clase estática no permite crear nuevas instancias, la clase por si misma funciona como un objeto.
Aportes 65
Preguntas 12
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:
Printer.PrintLine(); //Nombre de la clase estatica Printer llamando al metodo, vemos que la instancia de Printer no se realiza por ser clase estatica.
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
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,'='));
}
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);
}```
Espero les ayude un poco más compañeros:
https://docs.microsoft.com/es-es/dotnet/csharp/programming-guide/classes-and-structs/static-classes-and-static-class-members
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);
¿Quieres ver más aportes, preguntas y respuestas de la comunidad?