Usuario anónimo
UserKevin Bueno
Argument 1: cannot convert from 'string' to 'char'
Nicolas Castañeda
Toca usar comillas sencillas para que lo permita
Crear una base sólida en C# es más simple con buenas prácticas y herramientas. Aquí verás cómo definir la entidad curso, generar un unique ID con GUID, aplicar encapsulamiento, usar una enumeración para la jornada y optimizar tu flujo en Visual Studio Code con la extensión adecuada. Además, se muestra cómo imprimir resultados con concatenación e interpolación de cadenas y se anticipa el manejo de múltiples cursos.
¿Cómo acelerar la creación de clases en Visual Studio Code?
Aprovecha la extensión C# Extensions de J. Shannon para agilizar tareas repetitivas. Instálala desde Extensiones en Visual Studio Code, recarga el editor y crea nuevas clases con clic derecho: adiciona nueva clase. El esqueleto aparece con namespace y clase listos, evitando copiar/pegar.
¿Cómo mantener el namespace correcto?
Si trabajas con copias en carpetas como etapa dos, ajusta el namespace manualmente para mantener “core escuela” como espacio de nombres principal.
¿Qué atributos y constructor definen el curso en C#?
Un curso requiere propiedades claras y tipos adecuados. Se propuso Nombre como string y un UniqueId también como string para este ejercicio. Para la jornada, se sugiere una enumeración que evite errores de escritura.
Código de ejemplo de la enumeración:
enum TiposJornada { Mañana, Tarde, Noche }
Clase Curso con constructor que genera el ID automáticamente con GUID y asignación encapsulada:
using System; class Curso { public string Nombre { get; set; } public string UniqueId { get; private set; } public TiposJornada Jornada { get; set; } public Curso() => UniqueId = Guid.NewGuid().ToString(); }
¿Cómo crear e imprimir varios cursos con buenas prácticas?
Se crearon tres cursos y se imprimieron en consola para verificar resultados. La creación usó inicializadores de objeto y el constructor por defecto.
var curso1 = new Curso { Nombre = "Ciento uno" }; var curso2 = new Curso { Nombre = "Doscientos uno" }; var curso3 = new Curso { Nombre = "Trescientos uno" };
Intentar asignar el UniqueId desde fuera produce error por el modificador de acceso. Ese es el objetivo: proteger la integridad del ID.
Impresión con concatenación:
Console.WriteLine(curso1.Nombre + ", " + curso1.UniqueId);
Impresión con interpolación (versiones recientes de C#):
Console.WriteLine($"{curso2.Nombre}, {curso2.UniqueId}");
¿Cómo preparar el diseño para muchos cursos?
La escuela tiene cursos, pero su cantidad es variable. Crear uno a uno no escala. Se anticipa la necesidad de una colección para gestionar 1, 3, 5 o cientos de cursos de forma flexible. Esa mejora se abordará después.
¿Qué conceptos y habilidades practicas aquí?
¿Te surgieron dudas o ideas para mejorar la impresión, el uso de enums o la generación del ID? Cuéntalas y comparte cómo organizarías los cursos en una colección.
Usuario anónimo
UserKevin Bueno
Argument 1: cannot convert from 'string' to 'char'
Nicolas Castañeda
Toca usar comillas sencillas para que lo permita
Juan C Felizzola
Para copiar y pegar la misma linea debajo podemos usar el atajo Shift + Alt + ⬇
Juan David Saboya Jimenez
También en Visual Studio Community puedes usar el comando: Ctrl + D
Alonso Fabricio Samanez Nuñez
:thumbsup:
Ariel Ayala
Atajos en C#
System.Console.WriteLine();Janer Tegue
pvm puedes crear medtodo void pum crear metodos que retornan un String
Angela Patricia Uribe Laiseca
Console.WriteLine(curso1.Nombre+","+curso1.UniqueId);
Console.WriteLine($"{curso2.Nombre}+{curso1.UniqueId}");
El error del UniqueId del curso 2 es porque se dejó concatenada en la segunda linea el Id del curso1.
Leonardo Loayza
Estaba apunto de comentar lo mismo jaja
Kevin Rafael Santacruz Burgos
Se puede usar el atajo
alt + ↑
alt + ↓
para mover la línea seleccionada
Shirley Sanjuan Trespalacios
Sale el mismo Numero de ID del curso porque al Imprimir en Pantalla para Curso2, puso a Imprimir el ID del Curso 1 :)
Juan C Felizzola
El profesor quizo decir que vamos a poner privado el set para no modificarlo por fuera de la clase.
Anahi Zentella Aguirre
Company_adminEmerson Cedeño
genial!
Pedro Muñoz Becerra
Tambien podrías utilizar la funcion que vimos antes "ToString" e imprimir el objeto. Saludos.
Jonathan Jiménez Soveranes
Shift + Alt + (flecha abajo) para duplicar la misma linea.
Francisco Javier Encina
Otra forma de generar un id aleatorio es con Randow :
public Curso() { Random id = new Random(); UniqueId = id.Next(1,100).ToString();//Guid.NewGuid().ToString(); }
Cesar Eduardo Valle Pino
La extensión de jchannon ya no tiene soporte, pero se puede utilizar la de JosKreativ (https://marketplace.visualstudio.com/items?itemName=kreativ-software.csharpextensions)
Crhistian Denny Mendoza Luna
muchas gracias, apenas vi que no tenia soporte vine y su comentario fue el primero
Transpais
Se esta generando de forma correcta, pero se equivoco en lugar de mostrar la variable curso 2 esta llamando la variable curso1.UniqueID
Ernesto Lebni Miranda Escobar
La razón por la que los id aparecen duplicados, es porque a la hora de imprimirlos, no accede a los id de los respectivos cursos.
<code> ``` System.Console.Write($"Curso : {curso1.Nombre},\n ID: {curso1.UniqueId},\nJornada: {curso1.Jornada}"); System.Console.Write($"Curso : {curso2.Nombre},\n ID: {curso2.UniqueId},\nJornada: {curso2.Jornada}"); System.Console.Write($"Curso : {curso3.Nombre},\n ID: {curso3.UniqueId},\nJornada: {curso3.Jornada}"); )
Eddy Caceres
Observación:
Fernando Coria
Puede que la extensión del desarrollador mencionado en el video ya no esté disponible, pero hay otras con el mismo nombre y la misma funcionalidad. En la descripción podemos fácilmente darnos cuenta si es lo que necesitamos aunque el desarrollador sea otro. Ánimo y suerte con eso.
Brandon Díaz
Si los agregamos a alguna colección llamada Cursos (arreglo, lista, ...) podemos iterar cada curso con la sentencia foreach
foreach(Curso c in Cursos) Console.WriteLine($"{c.Nombre} {c.UniqueId}");
Igual, cuando el bloque de código es de una sola línea, puede no llevar llaves
Alvaro Mauricio Angulo Riquelme
El error estaba aquí:
Console.WriteLine(curso1.Nombre +", "+curso1.UniqueId); Console.WriteLine($"{curso2.Nombre}, {curso2.UniqueId}");
Carlos Héctor Méndez Sánchez
Le falto al profe cambiar los parametros de curso1 a curso2 al momento de imprimir por eso le sale el id igual
Yair Enrique Mendoza Mendoza
En la línea 33 de Program.cs, donde pone curso1.UniqueId va curso2.UniqueId, gracias
Jonathan Jiménez Soveranes
Exacto!
Gary Alexander Medrano Gallo
Le salio el mismo ID porque al querer imprimir el segundo curso le puso el mimo nombre del primero curso1. Debio poner curso2.
Un aporte que quiero hacer es para hacer la separación de código.
Esto es lo que se muestra en el vídeo:
System.Console.WriteLine("===============")
Y este es mi aporte para simplificar el codigo:
Console.WriteLine(new string("=", 50));
Lo que hace es que crea una nueva cadena y la multiplica por el numero que en este caso es 50.
Les dejo una función que implementé en la clase Curso para no tener que repetir el código de imprimir curso:
Curso.cs public void imprimirCurso() { Console.WriteLine($"Nombre: {Nombre} \t ID: {id} Jornada: {jornada}"); }
De ahi en mi programa solo escribo las siguientes lineas:
Program.cs curso1.imprimirCurso(); curso2.imprimirCurso(); curso3.imprimirCurso();
El resultado:
$ dotnet run Nombre: "PLATZI SCHOOL", Tipo Primaria Pais Colombia, Ciudad *********** Nombre: 101 ID: 58392050-1620-44dc-8238-0367c6d53790 Jornada: Matutino Nombre: 201 ID: 62be8925-a076-4858-9d95-dbb52c2cd5f2 Jornada: Matutino Nombre: 301 ID: 1be2995b-2b38-46f8-9fbd-1610003287eb Jornada: Matutino```